diff options
Diffstat (limited to 'src/lib/elementary/efl_ui_frame.c')
-rw-r--r-- | src/lib/elementary/efl_ui_frame.c | 119 |
1 files changed, 68 insertions, 51 deletions
diff --git a/src/lib/elementary/efl_ui_frame.c b/src/lib/elementary/efl_ui_frame.c index 234812d928..686fdc6cc1 100644 --- a/src/lib/elementary/efl_ui_frame.c +++ b/src/lib/elementary/efl_ui_frame.c @@ -2,8 +2,9 @@ # include "elementary_config.h" #endif -#define EFL_ACCESS_PROTECTED +#define EFL_ACCESS_OBJECT_PROTECTED #define ELM_LAYOUT_PROTECTED +#define EFL_PART_PROTECTED #include <Elementary.h> #include "elm_priv.h" @@ -14,7 +15,6 @@ #define MY_CLASS EFL_UI_FRAME_CLASS #define MY_CLASS_PFX efl_ui_frame #define MY_CLASS_NAME "Efl.Ui.Frame" -#define MY_CLASS_NAME_LEGACY "elm_frame" static const char SIG_CLICKED[] = "clicked"; @@ -25,18 +25,6 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = { {NULL, NULL} }; -static const Elm_Layout_Part_Alias_Description _content_aliases[] = -{ - {"default", "elm.swallow.content"}, - {NULL, NULL} -}; - -static const Elm_Layout_Part_Alias_Description _text_aliases[] = -{ - {"default", "elm.text"}, - {NULL, NULL} -}; - static void _sizing_eval(Evas_Object *obj, Efl_Ui_Frame_Data *sd EINA_UNUSED) @@ -89,7 +77,12 @@ _on_frame_clicked(void *data, if (sd->collapsible) { efl_event_callback_add(wd->resize_obj, EFL_LAYOUT_EVENT_RECALC, _recalc, data); - elm_layout_signal_emit(data, "elm,action,toggle", "elm"); + + if (elm_widget_is_legacy(data)) + elm_layout_signal_emit(data, "elm,action,toggle", "elm"); + else + elm_layout_signal_emit(data, "efl,action,toggle", "efl"); + sd->collapsed++; sd->anim = EINA_TRUE; elm_widget_tree_unfocusable_set(data, sd->collapsed); @@ -122,12 +115,24 @@ _efl_ui_frame_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Frame_Data *_pd EINA_UN efl_canvas_group_add(efl_super(obj, MY_CLASS)); elm_widget_sub_object_parent_add(obj); - edje_object_signal_callback_add - (wd->resize_obj, "elm,anim,done", "elm", - _on_recalc_done, obj); - edje_object_signal_callback_add - (wd->resize_obj, "elm,action,click", "elm", - _on_frame_clicked, obj); + if (elm_widget_is_legacy(obj)) + { + edje_object_signal_callback_add + (wd->resize_obj, "elm,anim,done", "elm", + _on_recalc_done, obj); + edje_object_signal_callback_add + (wd->resize_obj, "elm,action,click", "elm", + _on_frame_clicked, obj); + } + else + { + edje_object_signal_callback_add + (wd->resize_obj, "efl,anim,done", "efl", + _on_recalc_done, obj); + edje_object_signal_callback_add + (wd->resize_obj, "efl,action,click", "efl", + _on_frame_clicked, obj); + } elm_widget_can_focus_set(obj, EINA_FALSE); @@ -140,20 +145,12 @@ _efl_ui_frame_efl_canvas_group_group_add(Eo *obj, Efl_Ui_Frame_Data *_pd EINA_UN elm_layout_sizing_eval(obj); } -EAPI Evas_Object * -elm_frame_add(Evas_Object *parent) -{ - EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); - return elm_legacy_add(MY_CLASS, parent); -} - EOLIAN static Eo * _efl_ui_frame_efl_object_constructor(Eo *obj, Efl_Ui_Frame_Data *_pd EINA_UNUSED) { obj = efl_constructor(efl_super(obj, MY_CLASS)); - efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY); evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); - efl_access_role_set(obj, EFL_ACCESS_ROLE_FRAME); + efl_access_object_role_set(obj, EFL_ACCESS_ROLE_FRAME); return obj; } @@ -166,7 +163,7 @@ _efl_ui_frame_autocollapse_set(Eo *obj EINA_UNUSED, Efl_Ui_Frame_Data *sd, Eina_ } EOLIAN static Eina_Bool -_efl_ui_frame_autocollapse_get(Eo *obj EINA_UNUSED, Efl_Ui_Frame_Data *sd) +_efl_ui_frame_autocollapse_get(const Eo *obj EINA_UNUSED, Efl_Ui_Frame_Data *sd) { return sd->collapsible; } @@ -179,7 +176,11 @@ _efl_ui_frame_collapse_set(Eo *obj, Efl_Ui_Frame_Data *sd, Eina_Bool collapse) collapse = !!collapse; if (sd->collapsed == collapse) return; - elm_layout_signal_emit(obj, "elm,action,switch", "elm"); + if (elm_widget_is_legacy(obj)) + elm_layout_signal_emit(obj, "elm,action,switch", "elm"); + else + elm_layout_signal_emit(obj, "efl,action,switch", "efl"); + edje_object_message_signal_process(wd->resize_obj); sd->collapsed = !!collapse; sd->anim = EINA_FALSE; @@ -196,7 +197,11 @@ _efl_ui_frame_collapse_go(Eo *obj, Efl_Ui_Frame_Data *sd, Eina_Bool collapse) collapse = !!collapse; if (sd->collapsed == collapse) return; - elm_layout_signal_emit(obj, "elm,action,toggle", "elm"); + if (elm_widget_is_legacy(obj)) + elm_layout_signal_emit(obj, "elm,action,toggle", "elm"); + else + elm_layout_signal_emit(obj, "efl,action,toggle", "efl"); + efl_event_callback_legacy_call (wd->resize_obj, EFL_LAYOUT_EVENT_RECALC, obj); sd->collapsed = collapse; @@ -205,33 +210,45 @@ _efl_ui_frame_collapse_go(Eo *obj, Efl_Ui_Frame_Data *sd, Eina_Bool collapse) } EOLIAN static Eina_Bool -_efl_ui_frame_collapse_get(Eo *obj EINA_UNUSED, Efl_Ui_Frame_Data *sd) +_efl_ui_frame_collapse_get(const Eo *obj EINA_UNUSED, Efl_Ui_Frame_Data *sd) { return sd->collapsed; } -EOLIAN static void -_efl_ui_frame_class_constructor(Efl_Class *klass) -{ - evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); -} - -/* Default text (title) and content */ +/* Internal EO APIs and hidden overrides */ ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_ui_frame, Efl_Ui_Frame_Data) ELM_PART_MARKUP_DEFAULT_IMPLEMENT(efl_ui_frame, Efl_Ui_Frame_Data) -ELM_PART_CONTENT_DEFAULT_GET(efl_ui_frame, "elm.swallow.content") ELM_PART_CONTENT_DEFAULT_IMPLEMENT(efl_ui_frame, Efl_Ui_Frame_Data) -/* Internal EO APIs and hidden overrides */ - -ELM_LAYOUT_CONTENT_ALIASES_IMPLEMENT(efl_ui_frame) -ELM_LAYOUT_TEXT_ALIASES_IMPLEMENT(efl_ui_frame) - #define EFL_UI_FRAME_EXTRA_OPS \ - EFL_CANVAS_GROUP_ADD_OPS(efl_ui_frame), \ - ELM_LAYOUT_CONTENT_ALIASES_OPS(efl_ui_frame), \ - ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_frame), \ - ELM_LAYOUT_TEXT_ALIASES_OPS(efl_ui_frame) + EFL_CANVAS_GROUP_ADD_OPS(efl_ui_frame) #include "efl_ui_frame.eo.c" + +#include "efl_ui_frame_legacy.eo.h" + +#define MY_CLASS_NAME_LEGACY "elm_frame" + +static void +_efl_ui_frame_legacy_class_constructor(Efl_Class *klass) +{ + evas_smart_legacy_type_register(MY_CLASS_NAME_LEGACY, klass); +} + +EOLIAN static Eo * +_efl_ui_frame_legacy_efl_object_constructor(Eo *obj, void *_pd EINA_UNUSED) +{ + obj = efl_constructor(efl_super(obj, EFL_UI_FRAME_LEGACY_CLASS)); + efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY); + return obj; +} + +EAPI Evas_Object * +elm_frame_add(Evas_Object *parent) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL); + return elm_legacy_add(EFL_UI_FRAME_LEGACY_CLASS, parent); +} + +#include "efl_ui_frame_legacy.eo.c" |