From 743e0468e910a4f0928bcbf8f7547203108f0d78 Mon Sep 17 00:00:00 2001 From: Jaehyun Cho Date: Wed, 5 Sep 2018 14:32:51 +0900 Subject: [PATCH] efl_ui_popup: Replace class Efl.Ui.Popup_Part with Efl.Ui.Popup_Part_Backwall Class Efl.Ui.Popup_Part is used only for part "backwall". Therefore, class Efl.Ui.Popup_Part is replaced with class Efl.Ui.Popup_Part_Backwall. --- src/Makefile_Elementary.am | 2 +- src/lib/elementary/efl_ui_popup.c | 61 ++++++++----------- src/lib/elementary/efl_ui_popup.eo | 2 +- src/lib/elementary/efl_ui_popup_part.eo | 9 --- .../elementary/efl_ui_popup_part_backwall.eo | 9 +++ 5 files changed, 36 insertions(+), 47 deletions(-) delete mode 100644 src/lib/elementary/efl_ui_popup_part.eo create mode 100644 src/lib/elementary/efl_ui_popup_part_backwall.eo diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index 784710e41e..4e906e1190 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -42,7 +42,7 @@ elm_public_eolian_files = \ lib/elementary/efl_text_interactive.eo \ lib/elementary/efl_ui_text.eo \ lib/elementary/efl_ui_popup.eo \ - lib/elementary/efl_ui_popup_part.eo \ + lib/elementary/efl_ui_popup_part_backwall.eo \ lib/elementary/efl_ui_popup_alert.eo \ lib/elementary/efl_ui_popup_alert_part.eo \ lib/elementary/efl_ui_popup_alert_scroll.eo \ diff --git a/src/lib/elementary/efl_ui_popup.c b/src/lib/elementary/efl_ui_popup.c index 1ff2e850a2..0965e4a5ca 100644 --- a/src/lib/elementary/efl_ui_popup.c +++ b/src/lib/elementary/efl_ui_popup.c @@ -10,7 +10,7 @@ #include "elm_priv.h" #include "efl_ui_popup_private.h" -#include "efl_ui_popup_part.eo.h" +#include "efl_ui_popup_part_backwall.eo.h" #include "elm_part_helper.h" #define MY_CLASS EFL_UI_POPUP_CLASS @@ -327,69 +327,58 @@ _efl_ui_popup_efl_part_part_get(const Eo *obj, Efl_Ui_Popup_Data *_pd EINA_UNUSE { EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL); - if (eina_streq(part, "backwall")) - return ELM_PART_IMPLEMENT(EFL_UI_POPUP_PART_CLASS, obj, part); + if (eina_streq(part, PART_NAME_BACKWALL)) + return ELM_PART_IMPLEMENT(EFL_UI_POPUP_PART_BACKWALL_CLASS, obj, part); return efl_part_get(efl_super(obj, MY_CLASS), part); } EOLIAN static void -_efl_ui_popup_part_efl_canvas_object_repeat_events_set(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool repeat) +_efl_ui_popup_part_backwall_efl_canvas_object_repeat_events_set(Eo *obj, void *_pd EINA_UNUSED, Eina_Bool repeat) { Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); Efl_Ui_Popup_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_POPUP_CLASS); - if (eina_streq(pd->part, "backwall")) - efl_canvas_object_repeat_events_set(sd->backwall, repeat); - else - efl_canvas_object_repeat_events_set(efl_part(efl_super(pd->obj, MY_CLASS), pd->part), repeat); + efl_canvas_object_repeat_events_set(sd->backwall, repeat); } EOLIAN static Eina_Bool -_efl_ui_popup_part_efl_canvas_object_repeat_events_get(const Eo *obj, void *_pd EINA_UNUSED) +_efl_ui_popup_part_backwall_efl_canvas_object_repeat_events_get(const Eo *obj, void *_pd EINA_UNUSED) { Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); Efl_Ui_Popup_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_POPUP_CLASS); - if (eina_streq(pd->part, "backwall")) - return efl_canvas_object_repeat_events_get(sd->backwall); - - return efl_canvas_object_repeat_events_get(efl_part(efl_super(pd->obj, MY_CLASS), pd->part)); + return efl_canvas_object_repeat_events_get(sd->backwall); } EOLIAN static Eina_Bool -_efl_ui_popup_part_efl_file_file_set(Eo *obj, void *_pd EINA_UNUSED, const char *file, const char *group) +_efl_ui_popup_part_backwall_efl_file_file_set(Eo *obj, void *_pd EINA_UNUSED, const char *file, const char *group) { Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS); Efl_Ui_Popup_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_POPUP_CLASS); - if (eina_streq(pd->part, "backwall")) + Eo *prev_obj = edje_object_part_swallow_get(sd->backwall, "efl.content"); + if (prev_obj) { - Eo *prev_obj = edje_object_part_swallow_get(sd->backwall, "efl.content"); - if (prev_obj) - { - edje_object_signal_emit(sd->backwall, "efl,state,content,unset", "efl"); - edje_object_part_unswallow(sd->backwall, prev_obj); - efl_del(prev_obj); - } - - Eo *image = elm_image_add(pd->obj); - Eina_Bool ret = elm_image_file_set(image, file, group); - if (!ret) - { - efl_del(image); - return EINA_FALSE; - } - edje_object_part_swallow(sd->backwall, "efl.content", image); - edje_object_signal_emit(sd->backwall, "efl,state,content,set", "efl"); - - return EINA_TRUE; + edje_object_signal_emit(sd->backwall, "efl,state,content,unset", "efl"); + edje_object_part_unswallow(sd->backwall, prev_obj); + efl_del(prev_obj); } - return efl_file_set(efl_part(efl_super(pd->obj, MY_CLASS), pd->part), file, group); + Eo *image = elm_image_add(pd->obj); + Eina_Bool ret = elm_image_file_set(image, file, group); + if (!ret) + { + efl_del(image); + return EINA_FALSE; + } + edje_object_part_swallow(sd->backwall, "efl.content", image); + edje_object_signal_emit(sd->backwall, "efl,state,content,set", "efl"); + + return EINA_TRUE; } -#include "efl_ui_popup_part.eo.c" +#include "efl_ui_popup_part_backwall.eo.c" /* Efl.Part end */ diff --git a/src/lib/elementary/efl_ui_popup.eo b/src/lib/elementary/efl_ui_popup.eo index 235b98e1e3..5e74441b3c 100644 --- a/src/lib/elementary/efl_ui_popup.eo +++ b/src/lib/elementary/efl_ui_popup.eo @@ -49,7 +49,7 @@ class Efl.Ui.Popup(Efl.Ui.Layout.Object, Efl.Content) } } parts { - backwall: Efl.Ui.Popup_Part; [[A backwall behind the popup.]] + backwall: Efl.Ui.Popup_Part_Backwall; [[A backwall behind the popup.]] } implements { Efl.Object.constructor; diff --git a/src/lib/elementary/efl_ui_popup_part.eo b/src/lib/elementary/efl_ui_popup_part.eo deleted file mode 100644 index 28255788d2..0000000000 --- a/src/lib/elementary/efl_ui_popup_part.eo +++ /dev/null @@ -1,9 +0,0 @@ -class Efl.Ui.Popup_Part (Efl.Ui.Layout.Part, Efl.Canvas.Object, Efl.File) -{ - [[Efl UI Popup internal part class]] - data: null; - implements { - Efl.Canvas.Object.repeat_events { set; get; } - Efl.File.file { set; } - } -} diff --git a/src/lib/elementary/efl_ui_popup_part_backwall.eo b/src/lib/elementary/efl_ui_popup_part_backwall.eo new file mode 100644 index 0000000000..86a2322ad9 --- /dev/null +++ b/src/lib/elementary/efl_ui_popup_part_backwall.eo @@ -0,0 +1,9 @@ +class Efl.Ui.Popup_Part_Backwall (Efl.Ui.Layout.Part, Efl.Canvas.Object, Efl.File) +{ + [[Efl UI Popup internal part backwall class]] + data: null; + implements { + Efl.Canvas.Object.repeat_events { set; get; } + Efl.File.file { set; } + } +}