diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2019-09-03 14:48:58 +0200 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2019-09-10 10:07:13 +0200 |
commit | aabcf28a91944c8b8bbe7184cbe417a55845543a (patch) | |
tree | 15257273e49854afce5c8a10bf1873850fab014b /src/lib | |
parent | 6f4399dbab5cf386d23c16d5f65ccc74590b3f4b (diff) |
efl_ui_factory: split into constructing and building
constructing is called during construction time, building is called
after finalize. This is usefull for theme related properties that can
only be set after the theme is applied, which happens during finalize.
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/efl/interfaces/efl_ui_factory.eo | 11 | ||||
-rw-r--r-- | src/lib/elementary/efl_ui_caching_factory.c | 3 | ||||
-rw-r--r-- | src/lib/elementary/efl_ui_layout_factory.c | 8 | ||||
-rw-r--r-- | src/lib/elementary/efl_ui_layout_factory.eo | 1 | ||||
-rw-r--r-- | src/lib/elementary/efl_ui_widget_factory.c | 10 | ||||
-rw-r--r-- | src/lib/elementary/efl_ui_widget_factory.eo | 1 |
6 files changed, 30 insertions, 4 deletions
diff --git a/src/lib/efl/interfaces/efl_ui_factory.eo b/src/lib/efl/interfaces/efl_ui_factory.eo index 3a531af533..2828ec3b37 100644 --- a/src/lib/efl/interfaces/efl_ui_factory.eo +++ b/src/lib/efl/interfaces/efl_ui_factory.eo | |||
@@ -27,8 +27,15 @@ interface @beta Efl.Ui.Factory extends Efl.Ui.Property_Bind, Efl.Ui.Factory_Bind | |||
27 | } | 27 | } |
28 | } | 28 | } |
29 | building @const { | 29 | building @const { |
30 | [[This function is called during the creation of an UI object between the @Efl.Object.constructor and | 30 | [[This function is called after the creation of an UI object. |
31 | @Efl.Object.finalize call. | 31 | |
32 | Note: if the @Efl.Ui.Factory does keep a cache of object, this won't be called when object are pulled out of the cache.]] | ||
33 | params { | ||
34 | ui_view: Efl.Gfx.Entity; [[The UI object being created.]] | ||
35 | } | ||
36 | } | ||
37 | constructing @const { | ||
38 | [[This function is called during the construction of an UI object between the @Efl.Object.constructor and @Efl.Object.finalize call. | ||
32 | 39 | ||
33 | Note: If the @Efl.Ui.Factory does keep a cache of objects, this won't be called when objects are pulled out | 40 | Note: If the @Efl.Ui.Factory does keep a cache of objects, this won't be called when objects are pulled out |
34 | of the cache.]] | 41 | of the cache.]] |
diff --git a/src/lib/elementary/efl_ui_caching_factory.c b/src/lib/elementary/efl_ui_caching_factory.c index 33a44a013d..9a45c3a22d 100644 --- a/src/lib/elementary/efl_ui_caching_factory.c +++ b/src/lib/elementary/efl_ui_caching_factory.c | |||
@@ -246,8 +246,9 @@ _efl_ui_caching_factory_efl_ui_factory_create(Eo *obj, | |||
246 | EINA_ITERATOR_FOREACH(models, model) | 246 | EINA_ITERATOR_FOREACH(models, model) |
247 | { | 247 | { |
248 | w = efl_add(pd->klass, parent, | 248 | w = efl_add(pd->klass, parent, |
249 | efl_ui_factory_building(obj, efl_added), | 249 | efl_ui_factory_constructing(obj, efl_added), |
250 | efl_ui_view_model_set(efl_added, model)); | 250 | efl_ui_view_model_set(efl_added, model)); |
251 | efl_ui_factory_building(obj, w); | ||
251 | eina_value_array_append(&gr->done, w); | 252 | eina_value_array_append(&gr->done, w); |
252 | } | 253 | } |
253 | 254 | ||
diff --git a/src/lib/elementary/efl_ui_layout_factory.c b/src/lib/elementary/efl_ui_layout_factory.c index 3a0a66d9b2..25ca1b45f8 100644 --- a/src/lib/elementary/efl_ui_layout_factory.c +++ b/src/lib/elementary/efl_ui_layout_factory.c | |||
@@ -70,6 +70,14 @@ _efl_ui_layout_factory_efl_object_destructor(Eo *obj, Efl_Ui_Layout_Factory_Data | |||
70 | efl_destructor(efl_super(obj, MY_CLASS)); | 70 | efl_destructor(efl_super(obj, MY_CLASS)); |
71 | } | 71 | } |
72 | 72 | ||
73 | |||
74 | EOLIAN static void | ||
75 | _efl_ui_layout_factory_efl_ui_factory_constructing(const Eo *obj EINA_UNUSED, Efl_Ui_Layout_Factory_Data *pd EINA_UNUSED, Efl_Gfx_Entity *ui_view EINA_UNUSED) | ||
76 | { | ||
77 | /* NOP */ | ||
78 | } | ||
79 | |||
80 | |||
73 | static void | 81 | static void |
74 | _efl_ui_layout_factory_efl_ui_factory_building(const Eo *obj, Efl_Ui_Layout_Factory_Data *pd, Efl_Gfx_Entity *ui_view) | 82 | _efl_ui_layout_factory_efl_ui_factory_building(const Eo *obj, Efl_Ui_Layout_Factory_Data *pd, Efl_Gfx_Entity *ui_view) |
75 | { | 83 | { |
diff --git a/src/lib/elementary/efl_ui_layout_factory.eo b/src/lib/elementary/efl_ui_layout_factory.eo index 0d35d21706..038a33725b 100644 --- a/src/lib/elementary/efl_ui_layout_factory.eo +++ b/src/lib/elementary/efl_ui_layout_factory.eo | |||
@@ -16,6 +16,7 @@ class @beta Efl.Ui.Layout_Factory extends Efl.Ui.Caching_Factory | |||
16 | Efl.Object.constructor; | 16 | Efl.Object.constructor; |
17 | Efl.Object.destructor; | 17 | Efl.Object.destructor; |
18 | Efl.Ui.Factory.building; | 18 | Efl.Ui.Factory.building; |
19 | Efl.Ui.Factory.constructing; | ||
19 | Efl.Ui.Property_Bind.property_bind; | 20 | Efl.Ui.Property_Bind.property_bind; |
20 | Efl.Ui.Factory_Bind.factory_bind; | 21 | Efl.Ui.Factory_Bind.factory_bind; |
21 | } | 22 | } |
diff --git a/src/lib/elementary/efl_ui_widget_factory.c b/src/lib/elementary/efl_ui_widget_factory.c index b4b4d7a54c..aed2ceb6a6 100644 --- a/src/lib/elementary/efl_ui_widget_factory.c +++ b/src/lib/elementary/efl_ui_widget_factory.c | |||
@@ -69,6 +69,13 @@ _efl_ui_widget_factory_item_class_get(const Eo *obj EINA_UNUSED, | |||
69 | } | 69 | } |
70 | 70 | ||
71 | static void | 71 | static void |
72 | _efl_ui_widget_factory_efl_ui_factory_constructing(const Eo *obj EINA_UNUSED, Efl_Ui_Widget_Factory_Data *pd EINA_UNUSED, Efl_Gfx_Entity *ui_view EINA_UNUSED) | ||
73 | { | ||
74 | /* NOP */ | ||
75 | } | ||
76 | |||
77 | |||
78 | static void | ||
72 | _efl_ui_widget_factory_efl_ui_factory_building(const Eo *factory EINA_UNUSED, Efl_Ui_Widget_Factory_Data *pd, Efl_Gfx_Entity *ui_view) | 79 | _efl_ui_widget_factory_efl_ui_factory_building(const Eo *factory EINA_UNUSED, Efl_Ui_Widget_Factory_Data *pd, Efl_Gfx_Entity *ui_view) |
73 | { | 80 | { |
74 | const Efl_Model *model; | 81 | const Efl_Model *model; |
@@ -131,7 +138,8 @@ _efl_ui_widget_create(const Efl_Ui_Factory *factory, | |||
131 | 138 | ||
132 | w = efl_add(klass, parent, | 139 | w = efl_add(klass, parent, |
133 | efl_ui_view_model_set(efl_added, model), | 140 | efl_ui_view_model_set(efl_added, model), |
134 | efl_ui_factory_building(factory, efl_added)); | 141 | efl_ui_factory_constructing(factory, efl_added)); |
142 | efl_ui_factory_building(factory, w); | ||
135 | return w; | 143 | return w; |
136 | } | 144 | } |
137 | 145 | ||
diff --git a/src/lib/elementary/efl_ui_widget_factory.eo b/src/lib/elementary/efl_ui_widget_factory.eo index fdf537c1a7..c1d039f4b9 100644 --- a/src/lib/elementary/efl_ui_widget_factory.eo +++ b/src/lib/elementary/efl_ui_widget_factory.eo | |||
@@ -21,6 +21,7 @@ class @beta Efl.Ui.Widget_Factory extends Efl.Loop_Consumer implements Efl.Ui.Fa | |||
21 | Efl.Ui.Factory.create; | 21 | Efl.Ui.Factory.create; |
22 | Efl.Ui.Factory.release; | 22 | Efl.Ui.Factory.release; |
23 | Efl.Ui.Factory.building; | 23 | Efl.Ui.Factory.building; |
24 | Efl.Ui.Factory.constructing; | ||
24 | Efl.Ui.Property_Bind.property_bind; | 25 | Efl.Ui.Property_Bind.property_bind; |
25 | Efl.Part.part_get; | 26 | Efl.Part.part_get; |
26 | } | 27 | } |