summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2019-09-03 14:48:58 +0200
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2019-09-10 10:07:13 +0200
commitaabcf28a91944c8b8bbe7184cbe417a55845543a (patch)
tree15257273e49854afce5c8a10bf1873850fab014b
parent6f4399dbab5cf386d23c16d5f65ccc74590b3f4b (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.
-rw-r--r--src/lib/efl/interfaces/efl_ui_factory.eo11
-rw-r--r--src/lib/elementary/efl_ui_caching_factory.c3
-rw-r--r--src/lib/elementary/efl_ui_layout_factory.c8
-rw-r--r--src/lib/elementary/efl_ui_layout_factory.eo1
-rw-r--r--src/lib/elementary/efl_ui_widget_factory.c10
-rw-r--r--src/lib/elementary/efl_ui_widget_factory.eo1
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
74EOLIAN 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
73static void 81static 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
71static void 71static 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
78static 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 }