1 #include <Elementary.h>
3 # include "elementary_config.h"
5 #ifndef ELM_LIB_QUICKLAUNCH
7 // 64 ^ 5 = 1 billion (or so)
18 fac_unrealize(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
20 // setting factory content to null deletes it
21 printf("--------DELETE for factory %p [f: %p]\n", elm_factory_content_get(obj), obj);
22 elm_factory_content_set(obj, NULL);
26 fac_realize_end(void *data, Evas_Object *obj, void *event_info __UNUSED__)
28 Evas_Object *win = data;
32 bx = elm_box_add(win);
33 printf(" ADD lv 4 = %p [%i]\n", bx, (BLOK * (int)evas_object_data_get(obj, "num")));
35 elm_box_homogeneous_set(bx, EINA_TRUE);
38 for (i = 0; i < BLOK; i++)
42 snprintf(buf, sizeof(buf), "%i",
43 (i + (BLOK * (int)evas_object_data_get(obj, "num"))));
45 bt = elm_button_add(win);
46 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
47 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
48 elm_object_text_set(bt, buf);
49 elm_box_pack_end(bx, bt);
53 elm_factory_content_set(obj, bx);
58 fac_realize3(void *data, Evas_Object *obj, void *event_info __UNUSED__)
60 Evas_Object *win = data;
64 bx = elm_box_add(win);
65 printf(" ADD lv 3 = %p [%i]\n", bx, (BLOK * (int)evas_object_data_get(obj, "num")));
67 elm_box_homogeneous_set(bx, EINA_TRUE);
70 for (i = 0; i < BLOK; i++)
72 fc = elm_factory_add(win);
73 // initial height per factory of 1000
74 // scrollbar will be wrong until enough
75 // children have been realized and the
77 evas_object_data_set(fc, "num", (void *)(i + (BLOK * (int)evas_object_data_get(obj, "num"))));
78 evas_object_size_hint_min_set(fc, 0, 1000);
79 evas_object_size_hint_weight_set(fc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
80 evas_object_size_hint_align_set(fc, EVAS_HINT_FILL, EVAS_HINT_FILL);
81 evas_object_smart_callback_add(fc, "realize", fac_realize_end, win);
82 evas_object_smart_callback_add(fc, "unrealize", fac_unrealize, win);
83 elm_box_pack_end(bx, fc);
87 elm_factory_content_set(obj, bx);
92 fac_realize2(void *data, Evas_Object *obj, void *event_info __UNUSED__)
94 Evas_Object *win = data;
98 bx = elm_box_add(win);
99 printf(" ADD lv 2 = %p [%i]\n", bx, (BLOK * (int)evas_object_data_get(obj, "num")));
101 elm_box_homogeneous_set(bx, EINA_TRUE);
104 for (i = 0; i < BLOK; i++)
106 fc = elm_factory_add(win);
107 // initial height per factory of 1000
108 // scrollbar will be wrong until enough
109 // children have been realized and the
110 // real size is known
111 evas_object_data_set(fc, "num", (void *)(i + (BLOK * (int)evas_object_data_get(obj, "num"))));
112 evas_object_size_hint_min_set(fc, 0, 1000);
113 evas_object_size_hint_weight_set(fc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
114 evas_object_size_hint_align_set(fc, EVAS_HINT_FILL, EVAS_HINT_FILL);
115 evas_object_smart_callback_add(fc, "realize", fac_realize3, win);
116 evas_object_smart_callback_add(fc, "unrealize", fac_unrealize, win);
117 elm_box_pack_end(bx, fc);
118 evas_object_show(fc);
121 elm_factory_content_set(obj, bx);
122 evas_object_show(bx);
126 fac_realize1(void *data, Evas_Object *obj, void *event_info __UNUSED__)
128 Evas_Object *win = data;
129 Evas_Object *bx, *fc;
132 bx = elm_box_add(win);
133 printf(" ADD lv 1 = %p [%i]\n", bx, (BLOK * (int)evas_object_data_get(obj, "num")));
135 elm_box_homogeneous_set(bx, EINA_TRUE);
138 for (i = 0; i < BLOK; i++)
140 fc = elm_factory_add(win);
141 // initial height per factory of 1000
142 // scrollbar will be wrong until enough
143 // children have been realized and the
144 // real size is known
145 evas_object_data_set(fc, "num", (void *)(i + (BLOK * (int)evas_object_data_get(obj, "num"))));
146 evas_object_size_hint_min_set(fc, 0, 1000);
147 evas_object_size_hint_weight_set(fc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
148 evas_object_size_hint_align_set(fc, EVAS_HINT_FILL, EVAS_HINT_FILL);
149 evas_object_smart_callback_add(fc, "realize", fac_realize2, win);
150 evas_object_smart_callback_add(fc, "unrealize", fac_unrealize, win);
151 elm_box_pack_end(bx, fc);
152 evas_object_show(fc);
155 elm_factory_content_set(obj, bx);
156 evas_object_show(bx);
160 test_factory(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
162 Evas_Object *win, *bg, *bx, *sc, *fc;
165 win = elm_win_add(NULL, "factory", ELM_WIN_BASIC);
166 elm_win_title_set(win, "Factory");
167 elm_win_autodel_set(win, EINA_TRUE);
169 bg = elm_bg_add(win);
170 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
171 elm_win_resize_object_add(win, bg);
172 evas_object_show(bg);
174 bx = elm_box_add(win);
176 elm_box_homogeneous_set(bx, EINA_TRUE);
178 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
180 for (i = 0; i < BLOK; i++)
182 fc = elm_factory_add(win);
183 // initial height per factory of 1000
184 // scrollbar will be wrong until enough
185 // children have been realized and the
186 // real size is known
187 evas_object_data_set(fc, "num", (void *)i);
188 evas_object_size_hint_min_set(fc, 0, 1000);
189 evas_object_size_hint_weight_set(fc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
190 evas_object_size_hint_align_set(fc, EVAS_HINT_FILL, EVAS_HINT_FILL);
191 evas_object_smart_callback_add(fc, "realize", fac_realize1, win);
192 evas_object_smart_callback_add(fc, "unrealize", fac_unrealize, win);
193 elm_box_pack_end(bx, fc);
194 evas_object_show(fc);
197 sc = elm_scroller_add(win);
198 elm_scroller_bounce_set(sc, EINA_FALSE, EINA_TRUE);
199 evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
200 elm_win_resize_object_add(win, sc);
202 elm_scroller_content_set(sc, bx);
203 evas_object_show(bx);
205 evas_object_show(sc);
207 evas_object_resize(win, 320, 480);
208 evas_object_show(win);