efl_ui_tab_pager: fixed issue where tab_pager does not work
authorBowon Ryu <bowon.ryu@samsung.com>
Tue, 26 Mar 2019 05:20:27 +0000 (14:20 +0900)
committerYeongjong Lee <yj34.lee@samsung.com>
Tue, 2 Apr 2019 03:45:17 +0000 (12:45 +0900)
Summary:
I fixed the tab_pager behavior problem caused by changing efl interface.
and I have also fixed some sample code errors.
 - using efl_file_load for efl_file_set
 - using efl_del for unpacked tab_page
 - disable unimplemented features

Test Plan: elementary_test -to efl.ui.tab_pager

Reviewers: Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8471

src/bin/elementary/test_ui_tab_pager.c
src/lib/elementary/efl_ui_tab_bar.c
src/lib/elementary/efl_ui_tab_pager.c
src/lib/elementary/efl_ui_tab_pager.eo

index 345286c..e2dfb92 100644 (file)
@@ -89,6 +89,7 @@ content_add(Eo *parent, char *text)
    page = efl_add(EFL_UI_LAYOUT_CLASS, parent,
                   efl_file_set(efl_added, buf),
                   efl_file_key_set(efl_added, "page_layout"),
+                  efl_file_load(efl_added),
                   efl_text_set(efl_part(efl_added, "text"), text),
                   efl_gfx_hint_weight_set(efl_added, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND),
                   efl_gfx_hint_fill_set(efl_added, EINA_TRUE, EINA_TRUE));
@@ -399,6 +400,7 @@ _unpack_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED)
    int index = efl_ui_pager_current_page_get(tab_pager);
    Eo *tab_page = efl_pack_content_get(tab_pager, index);
    efl_pack_unpack(tab_pager, tab_page);
+   efl_del(tab_page);
 }
 
 static void
@@ -447,6 +449,7 @@ _unpack_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
    btn = efl_add(EFL_UI_BUTTON_CLASS, box,
                  efl_text_set(efl_added, "Clear"),
                  efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED, _clear_btn_cb, tab_pager),
+                 efl_ui_widget_disabled_set(efl_added, EINA_TRUE), //Soon to be implemented
                  efl_pack_end(box, efl_added));
 
    /* Unpack */
@@ -459,6 +462,7 @@ _unpack_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
    btn = efl_add(EFL_UI_BUTTON_CLASS, box,
                  efl_text_set(efl_added, "Unpack All"),
                  efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED, _unpack_all_btn_cb, tab_pager),
+                 efl_ui_widget_disabled_set(efl_added, EINA_TRUE), //Soon to be implemented
                  efl_pack_end(box, efl_added));
 
    in_box = efl_add(EFL_UI_BOX_CLASS, box,
@@ -479,6 +483,7 @@ _unpack_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
                  efl_text_set(efl_added, "Unpack At"),
                  efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED, _unpack_at_btn_cb, tsd),
                  efl_event_callback_add(efl_added, EFL_EVENT_DEL, _unpack_at_btn_del_cb, tsd),
+                 efl_ui_widget_disabled_set(efl_added, EINA_TRUE), //Soon to be implemented
                  efl_pack_end(in_box, efl_added));
 }
 
index b8c1dfc..e5fb341 100644 (file)
@@ -187,9 +187,9 @@ _tab_select(Efl_Ui_Tab_Bar_Data *sd, Tab_Info *ti)
 
         index = eina_list_data_idx(sd->tab_infos, ti);
 
-        efl_event_callback_call(tp, EFL_UI_EVENT_ITEM_SELECTED, NULL);
-
         sd->cur = index;
+
+        efl_event_callback_call(tp, EFL_UI_EVENT_ITEM_SELECTED, NULL);
      }
 }
 
index 593f000..4187f31 100644 (file)
@@ -26,7 +26,7 @@ _select(Eo *obj, int index)
 static void
 _tab_select_cb(void *data, const Efl_Event *event)
 {
-   int index = (intptr_t)event->info;
+   int index = efl_ui_tab_bar_current_tab_get(event->object);
    _select(data, index);
 }
 
index b602cce..c7e0b55 100644 (file)
@@ -14,7 +14,7 @@ class @beta Efl.Ui.Tab_Pager extends Efl.Ui.Pager
       Efl.Container.content_count;
       Efl.Pack.pack_clear;                     // TODO
       Efl.Pack.unpack_all;                     // TODO
-      Efl.Pack.unpack;                         // TODO
+      Efl.Pack.unpack;
       Efl.Pack_Linear.pack_begin;
       Efl.Pack_Linear.pack_end;
       Efl.Pack_Linear.pack_before;