summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2019-12-02 21:41:46 +0100
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2019-12-03 11:23:48 +0100
commit75a64268003af23257fc103b22d4b02e63706d91 (patch)
tree7861ac89417a050b241ba5ef11e4a1e8d0727d40
parentf7d26c9a0399ee6bb12902acaa9a3ed56bed22de (diff)
efl_ui_tab_pager: do not directly inherit from spotlight anymoredevs/bu5hm4n/tab_pager_work
spotlight moved away from layout, this could have also been solved with setting a edje object as resize object. However, this commit now contains the spotlight internally. The resons why containing it internally is better: - You now only have one way of selecting a page, marking it as selection via the selectable API - You cannot build race conditions between selecting a page and setting the active_element anymore - The tab_pager is now also just a simple single_selectable implementor, which makes this whole usage more convinient. - There is now a event you can listen to if you want to know if something has changed the selected item - push and pop would have never worked correctly in the tab_pager, as the item would have appeared always before the item was "faded" in. This possibility is not given anymore Last but not least, this makes tab_pager usable again, the tab bar is displayed again. Differential Revision: https://phab.enlightenment.org/D10775
-rw-r--r--src/bin/elementary/test_ui_tab_pager.c20
-rw-r--r--src/lib/elementary/efl_ui_tab_pager.c140
-rw-r--r--src/lib/elementary/efl_ui_tab_pager.eo22
-rw-r--r--src/lib/elementary/efl_ui_tab_pager_private.h1
4 files changed, 140 insertions, 43 deletions
diff --git a/src/bin/elementary/test_ui_tab_pager.c b/src/bin/elementary/test_ui_tab_pager.c
index 62e4e7d..d704372 100644
--- a/src/bin/elementary/test_ui_tab_pager.c
+++ b/src/bin/elementary/test_ui_tab_pager.c
@@ -139,7 +139,7 @@ test_ui_tab_pager(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *ev
139 page = tab_page_add(tp); 139 page = tab_page_add(tp);
140 efl_pack_end(tp, page); 140 efl_pack_end(tp, page);
141 if (i == 0) 141 if (i == 0)
142 efl_ui_spotlight_active_element_set(tp, page); 142 efl_ui_selectable_selected_set(efl_ui_tab_page_tab_bar_item_get(page), EINA_TRUE);
143 } 143 }
144 144
145 ad = (App_Data*)calloc(1, sizeof(App_Data)); 145 ad = (App_Data*)calloc(1, sizeof(App_Data));
@@ -174,7 +174,9 @@ static void
174_tab_set_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED) 174_tab_set_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED)
175{ 175{
176 Tab_Set_Data *tsd = data; 176 Tab_Set_Data *tsd = data;
177 efl_ui_spotlight_active_element_set(tsd->tab_pager, efl_pack_content_get(tsd->tab_pager, elm_spinner_value_get(tsd->spinner))); 177 Efl_Ui_Tab_Page *page = efl_pack_content_get(tsd->tab_pager, elm_spinner_value_get(tsd->spinner));
178
179 efl_ui_selectable_selected_set(efl_ui_tab_page_tab_bar_item_get(page), EINA_TRUE);
178} 180}
179 181
180static void 182static void
@@ -246,7 +248,7 @@ _pack_before_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED)
246 Eo *tab_pager = data; 248 Eo *tab_pager = data;
247 Eo *tab_page, *cur_tab_page; 249 Eo *tab_page, *cur_tab_page;
248 250
249 cur_tab_page = efl_ui_spotlight_active_element_get(tab_pager); 251 cur_tab_page = efl_ui_selectable_last_selected_get(tab_pager);
250 252
251 tab_page = tab_page_add(tab_pager); 253 tab_page = tab_page_add(tab_pager);
252 254
@@ -259,7 +261,7 @@ _pack_after_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED)
259 Eo *tab_pager = data; 261 Eo *tab_pager = data;
260 Eo *tab_page, *cur_tab_page; 262 Eo *tab_page, *cur_tab_page;
261 263
262 cur_tab_page = efl_ui_spotlight_active_element_get(tab_pager); 264 cur_tab_page = efl_ui_selectable_last_selected_get(tab_pager);
263 265
264 tab_page = tab_page_add(tab_pager); 266 tab_page = tab_page_add(tab_pager);
265 267
@@ -361,7 +363,7 @@ _unpack_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED)
361{ 363{
362 Eo *tab_pager = data; 364 Eo *tab_pager = data;
363 365
364 Eo *tab_page = efl_ui_spotlight_active_element_get(tab_pager); 366 Eo *tab_page = efl_ui_selectable_last_selected_get(tab_pager);
365 367
366 efl_pack_unpack(tab_pager, tab_page); 368 efl_pack_unpack(tab_pager, tab_page);
367 efl_del(tab_page); 369 efl_del(tab_page);
@@ -460,7 +462,7 @@ _change_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED)
460 char *label = NULL; 462 char *label = NULL;
461 char *icon = NULL; 463 char *icon = NULL;
462 464
463 tab_page = efl_ui_spotlight_active_element_get(tcd->tab_pager); 465 tab_page = efl_ui_selectable_last_selected_get(tcd->tab_pager);
464 466
465 if (efl_ui_selectable_selected_get(tcd->label_check)) 467 if (efl_ui_selectable_selected_get(tcd->label_check))
466 { 468 {
@@ -528,20 +530,20 @@ static void
528_tran_set_btn_scroll_cb(void *data, const Efl_Event *ev EINA_UNUSED) 530_tran_set_btn_scroll_cb(void *data, const Efl_Event *ev EINA_UNUSED)
529{ 531{
530 Efl_Ui_Spotlight_Manager_Scroll *scroll = efl_new(EFL_UI_SPOTLIGHT_MANAGER_SCROLL_CLASS); 532 Efl_Ui_Spotlight_Manager_Scroll *scroll = efl_new(EFL_UI_SPOTLIGHT_MANAGER_SCROLL_CLASS);
531 efl_ui_spotlight_manager_set(data, scroll); 533 efl_ui_tab_pager_spotlight_manager_set(data, scroll);
532} 534}
533 535
534static void 536static void
535_tran_set_btn_stack_cb(void *data, const Efl_Event *ev EINA_UNUSED) 537_tran_set_btn_stack_cb(void *data, const Efl_Event *ev EINA_UNUSED)
536{ 538{
537 Efl_Ui_Spotlight_Manager_Scroll *stack = efl_new(EFL_UI_SPOTLIGHT_MANAGER_STACK_CLASS); 539 Efl_Ui_Spotlight_Manager_Scroll *stack = efl_new(EFL_UI_SPOTLIGHT_MANAGER_STACK_CLASS);
538 efl_ui_spotlight_manager_set(data, stack); 540 efl_ui_tab_pager_spotlight_manager_set(data, stack);
539} 541}
540 542
541static void 543static void
542_tran_unset_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED) 544_tran_unset_btn_cb(void *data, const Efl_Event *ev EINA_UNUSED)
543{ 545{
544 efl_ui_spotlight_manager_set(data, NULL); 546 efl_ui_tab_pager_spotlight_manager_set(data, NULL);
545} 547}
546 548
547static void 549static void
diff --git a/src/lib/elementary/efl_ui_tab_pager.c b/src/lib/elementary/efl_ui_tab_pager.c
index 73e7d22..82b4ac4 100644
--- a/src/lib/elementary/efl_ui_tab_pager.c
+++ b/src/lib/elementary/efl_ui_tab_pager.c
@@ -12,24 +12,25 @@
12#define MY_CLASS EFL_UI_TAB_PAGER_CLASS 12#define MY_CLASS EFL_UI_TAB_PAGER_CLASS
13 13
14static void 14static void
15_select(Eo *obj EINA_UNUSED, Efl_Ui_Tab_Page *page) 15_efl_ui_tab_pager_spotlight_manager_set(Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *pd, Efl_Ui_Spotlight_Manager *manager)
16{ 16{
17 Efl_Ui_Tab_Bar_Default_Item *item = efl_ui_tab_page_tab_bar_item_get(page); 17 efl_ui_spotlight_manager_set(pd->spotlight, manager);
18
19 if (!efl_ui_selectable_selected_get(item))
20 efl_ui_selectable_selected_set(item, EINA_TRUE);
21} 18}
22 19
20
23static void 21static void
24_tab_select_cb(void *data, const Efl_Event *event) 22_tab_select_cb(void *data, const Efl_Event *event)
25{ 23{
26 Efl_Ui_Tab_Bar_Default_Item *selected; 24 Efl_Ui_Tab_Bar_Default_Item *selected;
27 Efl_Ui_Tab_Page *page; 25 Efl_Ui_Tab_Page *page;
26 Efl_Ui_Tab_Pager_Data *pd;
28 27
28 pd = efl_data_scope_get(data, MY_CLASS);
29 EINA_SAFETY_ON_NULL_RETURN(pd);
29 selected = efl_ui_selectable_last_selected_get(event->object); 30 selected = efl_ui_selectable_last_selected_get(event->object);
30 page = efl_parent_get(selected); 31 page = efl_parent_get(selected);
31 if (efl_ui_spotlight_active_element_get(data)) 32 if (efl_ui_spotlight_active_element_get(pd->spotlight))
32 efl_ui_spotlight_active_element_set(data, page); 33 efl_ui_spotlight_active_element_set(pd->spotlight, page);
33} 34}
34 35
35EOLIAN static Efl_Canvas_Object * 36EOLIAN static Efl_Canvas_Object *
@@ -39,13 +40,6 @@ _efl_ui_tab_pager_tab_bar_get(const Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *
39} 40}
40 41
41EOLIAN static void 42EOLIAN static void
42_efl_ui_tab_pager_efl_ui_spotlight_container_active_element_set(Eo *obj, Efl_Ui_Tab_Pager_Data *sd EINA_UNUSED, Efl_Ui_Widget *element)
43{
44 efl_ui_spotlight_active_element_set(efl_super(obj, MY_CLASS), element);
45 _select(obj, element);
46}
47
48EOLIAN static void
49_efl_ui_tab_pager_efl_object_destructor(Eo *obj, Efl_Ui_Tab_Pager_Data *sd) 43_efl_ui_tab_pager_efl_object_destructor(Eo *obj, Efl_Ui_Tab_Pager_Data *sd)
50{ 44{
51 if (sd->tab_bar != NULL) 45 if (sd->tab_bar != NULL)
@@ -66,10 +60,26 @@ _efl_ui_tab_pager_efl_object_constructor(Eo *obj, Efl_Ui_Tab_Pager_Data *sd)
66 60
67 sd->tab_bar = efl_add(EFL_UI_TAB_BAR_CLASS, obj); 61 sd->tab_bar = efl_add(EFL_UI_TAB_BAR_CLASS, obj);
68 efl_event_callback_add(sd->tab_bar, EFL_UI_EVENT_ITEM_SELECTED, _tab_select_cb, obj); 62 efl_event_callback_add(sd->tab_bar, EFL_UI_EVENT_ITEM_SELECTED, _tab_select_cb, obj);
63 efl_event_callback_forwarder_del(sd->tab_bar, EFL_UI_SELECTABLE_EVENT_SELECTION_CHANGED, obj);
64
65 sd->spotlight = efl_add(EFL_UI_SPOTLIGHT_CONTAINER_CLASS, obj);
69 66
70 return obj; 67 return obj;
71} 68}
72 69
70EOLIAN static Eina_Error
71_efl_ui_tab_pager_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Tab_Pager_Data *pd)
72{
73 Eina_Error err;
74
75 err = efl_ui_widget_theme_apply(efl_super(obj, MY_CLASS));
76
77 efl_content_set(efl_part(obj, "efl.tab_root"), pd->tab_bar);
78 efl_content_set(efl_part(obj, "efl.page_root"), pd->spotlight);
79
80 return err;
81}
82
73EOLIAN static Efl_Object* 83EOLIAN static Efl_Object*
74_efl_ui_tab_pager_efl_object_finalize(Eo *obj, Efl_Ui_Tab_Pager_Data *pd) 84_efl_ui_tab_pager_efl_object_finalize(Eo *obj, Efl_Ui_Tab_Pager_Data *pd)
75{ 85{
@@ -80,91 +90,157 @@ _efl_ui_tab_pager_efl_object_finalize(Eo *obj, Efl_Ui_Tab_Pager_Data *pd)
80 return obj; 90 return obj;
81} 91}
82 92
93EOLIAN static int
94_efl_ui_tab_pager_efl_container_content_count(Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *pd)
95{
96 return efl_content_count(pd->spotlight);
97}
98
99EOLIAN static Eina_Iterator*
100_efl_ui_tab_pager_efl_container_content_iterate(Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *pd)
101{
102 return efl_content_iterate(pd->spotlight);
103}
104
105EOLIAN static Eina_Bool
106_efl_ui_tab_pager_efl_pack_pack(Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *pd, Efl_Gfx_Entity *subobj)
107{
108 return efl_pack(pd->spotlight, subobj);
109}
110
111EOLIAN static Efl_Gfx_Entity*
112_efl_ui_tab_pager_efl_pack_linear_pack_content_get(Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *pd, int index)
113{
114 return efl_pack_content_get(pd->spotlight, index);
115}
116
117EOLIAN static int
118_efl_ui_tab_pager_efl_pack_linear_pack_index_get(Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *pd, const Efl_Gfx_Entity *subobj)
119{
120 return efl_pack_index_get(pd->spotlight, subobj);
121}
122
83EOLIAN static Eina_Bool 123EOLIAN static Eina_Bool
84_efl_ui_tab_pager_efl_pack_pack_clear(Eo *obj, Efl_Ui_Tab_Pager_Data *sd) 124_efl_ui_tab_pager_efl_pack_pack_clear(Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *sd)
85{ 125{
86 if (!efl_pack_clear(sd->tab_bar)) 126 if (!efl_pack_clear(sd->tab_bar))
87 return EINA_FALSE; 127 return EINA_FALSE;
88 return efl_pack_clear(efl_super(obj, MY_CLASS)); 128 return efl_pack_clear(sd->spotlight);
89} 129}
90 130
91EOLIAN static Eina_Bool 131EOLIAN static Eina_Bool
92_efl_ui_tab_pager_efl_pack_unpack_all(Eo *obj, Efl_Ui_Tab_Pager_Data *sd) 132_efl_ui_tab_pager_efl_pack_unpack_all(Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *sd)
93{ 133{
94 if (!efl_pack_unpack_all(sd->tab_bar)) 134 if (!efl_pack_unpack_all(sd->tab_bar))
95 return EINA_FALSE; 135 return EINA_FALSE;
96 return efl_pack_unpack_all(efl_super(obj, MY_CLASS)); 136 return efl_pack_unpack_all(sd->spotlight);
97} 137}
98 138
99#define ITEM(s) efl_ui_tab_page_tab_bar_item_get(s) 139#define ITEM(s) efl_ui_tab_page_tab_bar_item_get(s)
100 140
101EOLIAN static Eina_Bool 141EOLIAN static Eina_Bool
102_efl_ui_tab_pager_efl_pack_unpack(Eo *obj, Efl_Ui_Tab_Pager_Data *sd, Efl_Gfx_Entity *subobj) 142_efl_ui_tab_pager_efl_pack_unpack(Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *sd, Efl_Gfx_Entity *subobj)
103{ 143{
104 if (!efl_pack_unpack(sd->tab_bar, ITEM(subobj))) 144 if (!efl_pack_unpack(sd->tab_bar, ITEM(subobj)))
105 return EINA_FALSE; 145 return EINA_FALSE;
106 return efl_pack_unpack(efl_super(obj, MY_CLASS), subobj); 146 return efl_pack_unpack(sd->spotlight, subobj);
107} 147}
108 148
109EOLIAN static Eina_Bool 149EOLIAN static Eina_Bool
110_efl_ui_tab_pager_efl_pack_linear_pack_begin(Eo *obj, 150_efl_ui_tab_pager_efl_pack_linear_pack_begin(Eo *obj EINA_UNUSED,
111 Efl_Ui_Tab_Pager_Data *sd, 151 Efl_Ui_Tab_Pager_Data *sd,
112 Efl_Gfx_Entity *subobj) 152 Efl_Gfx_Entity *subobj)
113{ 153{
114 if (!efl_pack_begin(sd->tab_bar, ITEM(subobj))) 154 if (!efl_pack_begin(sd->tab_bar, ITEM(subobj)))
115 return EINA_FALSE; 155 return EINA_FALSE;
116 return efl_pack_begin(efl_super(obj, MY_CLASS), subobj); 156 return efl_pack_begin(sd->spotlight, subobj);
117} 157}
118 158
119EOLIAN static Eina_Bool 159EOLIAN static Eina_Bool
120_efl_ui_tab_pager_efl_pack_linear_pack_end(Eo *obj, 160_efl_ui_tab_pager_efl_pack_linear_pack_end(Eo *obj EINA_UNUSED,
121 Efl_Ui_Tab_Pager_Data *sd, 161 Efl_Ui_Tab_Pager_Data *sd,
122 Efl_Gfx_Entity *subobj) 162 Efl_Gfx_Entity *subobj)
123{ 163{
124 if (!efl_pack_end(sd->tab_bar, ITEM(subobj))) 164 if (!efl_pack_end(sd->tab_bar, ITEM(subobj)))
125 return EINA_FALSE; 165 return EINA_FALSE;
126 return efl_pack_end(efl_super(obj, MY_CLASS), subobj); 166 return efl_pack_end(sd->spotlight, subobj);
127} 167}
128 168
129EOLIAN static Eina_Bool 169EOLIAN static Eina_Bool
130_efl_ui_tab_pager_efl_pack_linear_pack_before(Eo *obj, 170_efl_ui_tab_pager_efl_pack_linear_pack_before(Eo *obj EINA_UNUSED,
131 Efl_Ui_Tab_Pager_Data *sd, 171 Efl_Ui_Tab_Pager_Data *sd,
132 Efl_Gfx_Entity *subobj, 172 Efl_Gfx_Entity *subobj,
133 const Efl_Gfx_Entity *existing) 173 const Efl_Gfx_Entity *existing)
134{ 174{
135 if (!efl_pack_before(sd->tab_bar, ITEM(subobj), ITEM(existing))) 175 if (!efl_pack_before(sd->tab_bar, ITEM(subobj), ITEM(existing)))
136 return EINA_FALSE; 176 return EINA_FALSE;
137 return efl_pack_before(efl_super(obj, MY_CLASS), subobj, existing); 177 return efl_pack_before(sd->spotlight, subobj, existing);
138} 178}
139 179
140EOLIAN static Eina_Bool 180EOLIAN static Eina_Bool
141_efl_ui_tab_pager_efl_pack_linear_pack_after(Eo *obj, 181_efl_ui_tab_pager_efl_pack_linear_pack_after(Eo *obj EINA_UNUSED,
142 Efl_Ui_Tab_Pager_Data *sd, 182 Efl_Ui_Tab_Pager_Data *sd,
143 Efl_Gfx_Entity *subobj, 183 Efl_Gfx_Entity *subobj,
144 const Efl_Gfx_Entity *existing) 184 const Efl_Gfx_Entity *existing)
145{ 185{
146 if (!efl_pack_after(sd->tab_bar, ITEM(subobj), ITEM(existing))) 186 if (!efl_pack_after(sd->tab_bar, ITEM(subobj), ITEM(existing)))
147 return EINA_FALSE; 187 return EINA_FALSE;
148 return efl_pack_after(efl_super(obj, MY_CLASS), subobj, existing); 188 return efl_pack_after(sd->spotlight, subobj, existing);
149} 189}
150 190
151EOLIAN static Eina_Bool 191EOLIAN static Eina_Bool
152_efl_ui_tab_pager_efl_pack_linear_pack_at(Eo *obj, 192_efl_ui_tab_pager_efl_pack_linear_pack_at(Eo *obj EINA_UNUSED,
153 Efl_Ui_Tab_Pager_Data *sd, 193 Efl_Ui_Tab_Pager_Data *sd,
154 Efl_Gfx_Entity *subobj, 194 Efl_Gfx_Entity *subobj,
155 int index) 195 int index)
156{ 196{
157 if (!efl_pack_at(sd->tab_bar, ITEM(subobj), index)) 197 if (!efl_pack_at(sd->tab_bar, ITEM(subobj), index))
158 return EINA_FALSE; 198 return EINA_FALSE;
159 return efl_pack_at(efl_super(obj, MY_CLASS), subobj, index); 199 return efl_pack_at(sd->spotlight, subobj, index);
160} 200}
161 201
162EOLIAN static Efl_Gfx_Entity * 202EOLIAN static Efl_Gfx_Entity *
163_efl_ui_tab_pager_efl_pack_linear_pack_unpack_at(Eo *obj, Efl_Ui_Tab_Pager_Data *sd, int index) 203_efl_ui_tab_pager_efl_pack_linear_pack_unpack_at(Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *sd, int index)
164{ 204{
165 if (!efl_pack_unpack_at(sd->tab_bar, index)) 205 if (!efl_pack_unpack_at(sd->tab_bar, index))
166 return NULL; 206 return NULL;
167 return efl_pack_unpack_at(efl_super(obj, MY_CLASS), index); 207 return efl_pack_unpack_at(sd->spotlight, index);
208}
209
210EOLIAN static Efl_Ui_Selectable*
211_efl_ui_tab_pager_efl_ui_single_selectable_last_selected_get(const Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *pd)
212{
213 Efl_Ui_Tab_Bar_Default_Item *item = efl_ui_selectable_last_selected_get(pd->tab_bar);
214
215 return efl_parent_get(item);
216}
217
218EOLIAN static void
219_efl_ui_tab_pager_efl_ui_single_selectable_fallback_selection_set(Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *pd, Efl_Ui_Selectable *fallback)
220{
221 efl_ui_selectable_fallback_selection_set(pd->tab_bar, efl_ui_tab_page_tab_bar_item_get(fallback));
222}
223
224EOLIAN static Efl_Ui_Selectable*
225_efl_ui_tab_pager_efl_ui_single_selectable_fallback_selection_get(const Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *pd)
226{
227 Efl_Ui_Tab_Bar_Default_Item *item = efl_ui_selectable_fallback_selection_get(pd->tab_bar);
228
229 return efl_parent_get(item);
230}
231
232EOLIAN static void
233_efl_ui_tab_pager_efl_ui_single_selectable_allow_manual_deselection_set(Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *pd, Eina_Bool allow_manual_deselection)
234{
235 efl_ui_selectable_allow_manual_deselection_set(pd->tab_bar, allow_manual_deselection);
168} 236}
169 237
238
239EOLIAN static Eina_Bool
240_efl_ui_tab_pager_efl_ui_single_selectable_allow_manual_deselection_get(const Eo *obj EINA_UNUSED, Efl_Ui_Tab_Pager_Data *pd)
241{
242 return efl_ui_selectable_allow_manual_deselection_get(pd->tab_bar);
243}
244
245
170#include "efl_ui_tab_pager.eo.c" 246#include "efl_ui_tab_pager.eo.c"
diff --git a/src/lib/elementary/efl_ui_tab_pager.eo b/src/lib/elementary/efl_ui_tab_pager.eo
index 9f4bb42..ae284c2 100644
--- a/src/lib/elementary/efl_ui_tab_pager.eo
+++ b/src/lib/elementary/efl_ui_tab_pager.eo
@@ -1,4 +1,5 @@
1class @beta Efl.Ui.Tab_Pager extends Efl.Ui.Spotlight.Container 1class @beta Efl.Ui.Tab_Pager extends Efl.Ui.Layout_Base
2 implements Efl.Pack_Linear, Efl.Ui.Single_Selectable
2{ 3{
3 [[Container for @Efl.Ui.Tab_Page 4 [[Container for @Efl.Ui.Tab_Page
4 5
@@ -15,20 +16,37 @@ class @beta Efl.Ui.Tab_Pager extends Efl.Ui.Spotlight.Container
15 tab_bar: Efl.Ui.Tab_Bar; [[Tab bar for the items of the @Efl.Ui.Tab_Page]] 16 tab_bar: Efl.Ui.Tab_Bar; [[Tab bar for the items of the @Efl.Ui.Tab_Page]]
16 } 17 }
17 } 18 }
19 @property spotlight_manager {
20 [[Spotlight manager to show]]
21 set {
22
23 }
24 values {
25 manager : Efl.Ui.Spotlight.Manager;
26 }
27 }
18 } 28 }
19 implements { 29 implements {
20 Efl.Object.constructor; 30 Efl.Object.constructor;
21 Efl.Object.destructor; 31 Efl.Object.destructor;
22 Efl.Object.finalize; 32 Efl.Object.finalize;
33 Efl.Container.content_count;
34 Efl.Container.content_iterate;
23 Efl.Pack.pack_clear; 35 Efl.Pack.pack_clear;
24 Efl.Pack.unpack_all; 36 Efl.Pack.unpack_all;
25 Efl.Pack.unpack; 37 Efl.Pack.unpack;
38 Efl.Pack.pack;
26 Efl.Pack_Linear.pack_begin; 39 Efl.Pack_Linear.pack_begin;
27 Efl.Pack_Linear.pack_end; 40 Efl.Pack_Linear.pack_end;
28 Efl.Pack_Linear.pack_before; 41 Efl.Pack_Linear.pack_before;
29 Efl.Pack_Linear.pack_after; 42 Efl.Pack_Linear.pack_after;
30 Efl.Pack_Linear.pack_at; 43 Efl.Pack_Linear.pack_at;
44 Efl.Pack_Linear.pack_content_get;
45 Efl.Pack_Linear.pack_index_get;
31 Efl.Pack_Linear.pack_unpack_at; 46 Efl.Pack_Linear.pack_unpack_at;
32 Efl.Ui.Spotlight.Container.active_element { set; } 47 Efl.Ui.Single_Selectable.last_selected {get;}
48 Efl.Ui.Single_Selectable.fallback_selection {set; get;}
49 Efl.Ui.Single_Selectable.allow_manual_deselection {set; get;}
50 Efl.Ui.Widget.theme_apply;
33 } 51 }
34} 52}
diff --git a/src/lib/elementary/efl_ui_tab_pager_private.h b/src/lib/elementary/efl_ui_tab_pager_private.h
index 1da72fe..9ac7163 100644
--- a/src/lib/elementary/efl_ui_tab_pager_private.h
+++ b/src/lib/elementary/efl_ui_tab_pager_private.h
@@ -6,6 +6,7 @@ typedef struct _Efl_Ui_Tab_Pager_Data Efl_Ui_Tab_Pager_Data;
6struct _Efl_Ui_Tab_Pager_Data 6struct _Efl_Ui_Tab_Pager_Data
7{ 7{
8 Eo *tab_bar; 8 Eo *tab_bar;
9 Eo *spotlight;
9}; 10};
10 11
11 12