summaryrefslogtreecommitdiff
path: root/src/lib/elementary/efl_ui_frame.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/elementary/efl_ui_frame.c')
-rw-r--r--src/lib/elementary/efl_ui_frame.c119
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"