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 <woohyun0705@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9731
This commit is contained in:
Marcel Hollerbach 2019-08-23 19:16:56 +02:00
parent ffafe749ed
commit 3cc427234e
5 changed files with 20 additions and 24 deletions

View File

@ -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;

View File

@ -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;
}
}

View File

@ -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)
{

View File

@ -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

View File

@ -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"
}
}