bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=3cc427234ef0d05507da6f3259fc11b4f7b02249

commit 3cc427234ef0d05507da6f3259fc11b4f7b02249
Author: Marcel Hollerbach <m...@marcel-hollerbach.de>
Date:   Fri Aug 23 19:16:56 2019 +0200

    efl_ui_tab_pager: remove the setter for tab_bar
    
    the setter of the tab_bar here is quite useless. If you set it after
    something else was set, the item situation is not clear anymore, there
    is more in the spotlight than in the bar. You cannot use the widget
    without tab bar. So the logical consequence for me was that the pager
    create the tab bar by itself, and you can just access it via a getter.
    
    Reviewed-by: WooHyun Jung <woohyun0...@gmail.com>
    Differential Revision: https://phab.enlightenment.org/D9731
---
 src/bin/elementary/test_ui_tab_pager.c             |  5 +---
 src/lib/elementary/efl_ui_tab_bar.eo               |  1 -
 src/lib/elementary/efl_ui_tab_pager.c              | 29 +++++++++-------------
 src/lib/elementary/efl_ui_tab_pager.eo             |  4 +++
 .../elementary/spec/efl_test_single_selectable.c   |  5 ++--
 5 files changed, 20 insertions(+), 24 deletions(-)

diff --git a/src/bin/elementary/test_ui_tab_pager.c 
b/src/bin/elementary/test_ui_tab_pager.c
index e23166d1cf..93aaa12948 100644
--- a/src/bin/elementary/test_ui_tab_pager.c
+++ b/src/bin/elementary/test_ui_tab_pager.c
@@ -97,7 +97,7 @@ tab_page_add(Eo *parent)
 void
 test_ui_tab_pager(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUSED)
 {
-   Eo *win, *layout, *navi, *list, *tp, *tb, *page;
+   Eo *win, *layout, *navi, *list, *tp, *page;
    //Efl_Page_Transition *tran;
    App_Data *ad = NULL;
    char buf[PATH_MAX];
@@ -132,9 +132,6 @@ test_ui_tab_pager(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *ev
                 efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_TRUE),
                 efl_content_set(efl_part(layout, "tab_pager"), efl_added));
 
-   tb = efl_add(EFL_UI_TAB_BAR_CLASS, tp);
-   efl_ui_tab_pager_tab_bar_set(tp, tb);
-
    tab_label_count = 0;
    tab_icon_count = 0;
 
diff --git a/src/lib/elementary/efl_ui_tab_bar.eo 
b/src/lib/elementary/efl_ui_tab_bar.eo
index eff7281e22..1d27afe62e 100644
--- a/src/lib/elementary/efl_ui_tab_bar.eo
+++ b/src/lib/elementary/efl_ui_tab_bar.eo
@@ -27,6 +27,5 @@ class @beta Efl.Ui.Tab_Bar extends Efl.Ui.Layout_Base 
implements Efl.Ui.Single_S
       Efl.Pack_Linear;
       Efl.Pack;
       Efl.Pack_Linear;
-      Efl.Container;
    }
 }
diff --git a/src/lib/elementary/efl_ui_tab_pager.c 
b/src/lib/elementary/efl_ui_tab_pager.c
index b7299fce92..bfc22d8e1c 100644
--- a/src/lib/elementary/efl_ui_tab_pager.c
+++ b/src/lib/elementary/efl_ui_tab_pager.c
@@ -45,22 +45,6 @@ _tab_select_cb(void *data, const Efl_Event *event)
      }
 }
 
-EOLIAN static void
-_efl_ui_tab_pager_tab_bar_set(Eo *obj, Efl_Ui_Tab_Pager_Data *sd, 
Efl_Canvas_Object *tab_bar)
-{
-   if (sd->tab_bar != NULL)
-     {
-        efl_event_callback_del(sd->tab_bar, EFL_UI_EVENT_ITEM_SELECTED, 
_tab_select_cb, obj);
-        efl_content_unset(efl_part(obj, "efl.tab_root"));
-        efl_del(sd->tab_bar);
-     }
-
-   sd->tab_bar = tab_bar;
-   efl_content_set(efl_part(obj, "efl.tab_root"), sd->tab_bar);
-
-   efl_event_callback_add(sd->tab_bar, EFL_UI_EVENT_ITEM_SELECTED, 
_tab_select_cb, obj);
-}
-
 EOLIAN static Efl_Canvas_Object *
 _efl_ui_tab_pager_tab_bar_get(const Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data 
*sd)
 {
@@ -93,13 +77,24 @@ _efl_ui_tab_pager_efl_object_constructor(Eo *obj, 
Efl_Ui_Tab_Pager_Data *sd)
 
    efl_ui_widget_focus_allow_set(obj, EINA_TRUE);
 
-   sd->tab_bar = NULL;
+   sd->tab_bar = efl_add(EFL_UI_TAB_BAR_CLASS, obj);
+   efl_event_callback_add(sd->tab_bar, EFL_UI_EVENT_ITEM_SELECTED, 
_tab_select_cb, obj);
    sd->cur = 0;
    sd->cnt = 0;
 
    return obj;
 }
 
+EOLIAN static Efl_Object*
+_efl_ui_tab_pager_efl_object_finalize(Eo *obj, Efl_Ui_Tab_Pager_Data *pd)
+{
+   obj = efl_finalize(efl_super(obj, MY_CLASS));
+
+   efl_content_set(efl_part(obj, "efl.tab_root"), pd->tab_bar);
+
+   return obj;
+}
+
 EOLIAN static int
 _efl_ui_tab_pager_efl_container_content_count(Eo *obj EINA_UNUSED, 
Efl_Ui_Tab_Pager_Data *sd)
 {
diff --git a/src/lib/elementary/efl_ui_tab_pager.eo 
b/src/lib/elementary/efl_ui_tab_pager.eo
index 79eaede7b5..ac25becc58 100644
--- a/src/lib/elementary/efl_ui_tab_pager.eo
+++ b/src/lib/elementary/efl_ui_tab_pager.eo
@@ -3,6 +3,9 @@ class @beta Efl.Ui.Tab_Pager extends Efl.Ui.Spotlight.Container
    [[Tab Pager class]]
    methods {
       @property tab_bar {
+         get {
+
+         }
          values {
             tab_bar: Efl.Canvas.Object;
          }
@@ -11,6 +14,7 @@ class @beta Efl.Ui.Tab_Pager extends 
Efl.Ui.Spotlight.Container
    implements {
       Efl.Object.constructor;
       Efl.Object.destructor;
+      Efl.Object.finalize;
       Efl.Container.content_count;
       Efl.Pack.pack_clear;                     // TODO
       Efl.Pack.unpack_all;                     // TODO
diff --git a/src/tests/elementary/spec/efl_test_single_selectable.c 
b/src/tests/elementary/spec/efl_test_single_selectable.c
index 5ec40b2747..6639cc9c66 100644
--- a/src/tests/elementary/spec/efl_test_single_selectable.c
+++ b/src/tests/elementary/spec/efl_test_single_selectable.c
@@ -8,11 +8,12 @@
 
 /* spec-meta-start
       {"test-interface":"Efl.Ui.Single_Selectable",
-       "test-widgets": ["Efl.Ui.Grid", "Efl.Ui.List", "Efl.Ui.Radio_Box"],
+       "test-widgets": ["Efl.Ui.Grid", "Efl.Ui.List", "Efl.Ui.Radio_Box", 
"Efl.Ui.Tab_Bar"],
        "custom-mapping" : {
           "Efl.Ui.Grid" : "EFL_UI_GRID_DEFAULT_ITEM_CLASS",
           "Efl.Ui.List" : "EFL_UI_LIST_DEFAULT_ITEM_CLASS",
-          "Efl.Ui.Radio_Box" : "EFL_UI_RADIO_CLASS"
+          "Efl.Ui.Radio_Box" : "EFL_UI_RADIO_CLASS",
+          "Efl.Ui.Tab_Bar" : "EFL_UI_TAB_BAR_DEFAULT_ITEM_CLASS"
         }
       }
 

-- 


Reply via email to