1 #include <Elementary.h>
3 # include "elementary_config.h"
5 #ifndef ELM_LIB_QUICKLAUNCH
11 fac_unrealize(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
13 // setting factory content to null deletes it
14 printf("DELETE for factory %p\n", obj);
15 elm_factory_content_set(obj, NULL);
19 fac_realize_end(void *data, Evas_Object *obj, void *event_info __UNUSED__)
21 Evas_Object *win = data;
25 printf("ADD for factory 4 %p [%i]\n", obj, (BLOK * (int)evas_object_data_get(obj, "num")));
26 bx = elm_box_add(win);
27 elm_box_homogeneous_set(bx, EINA_TRUE);
29 for (i = 0; i < BLOK; i++)
33 snprintf(buf, sizeof(buf), "%i",
34 (i + (BLOK * (int)evas_object_data_get(obj, "num"))));
36 bt = elm_button_add(win);
37 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
38 evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
39 elm_object_text_set(bt, buf);
40 elm_box_pack_end(bx, bt);
44 elm_factory_content_set(obj, bx);
49 fac_realize3(void *data, Evas_Object *obj, void *event_info __UNUSED__)
51 Evas_Object *win = data;
55 printf("ADD for factory 3 %p [%i]\n", obj, (BLOK * (int)evas_object_data_get(obj, "num")));
56 bx = elm_box_add(win);
57 elm_box_homogeneous_set(bx, EINA_TRUE);
59 for (i = 0; i < BLOK; i++)
61 fc = elm_factory_add(win);
62 // initial height per factory of 1000
63 // scrollbar will be wrong until enough
64 // children have been realized and the
66 evas_object_data_set(fc, "num", (void *)(i + (BLOK * (int)evas_object_data_get(obj, "num"))));
67 evas_object_size_hint_min_set(fc, 0, 1000);
68 evas_object_size_hint_weight_set(fc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
69 evas_object_size_hint_align_set(fc, EVAS_HINT_FILL, EVAS_HINT_FILL);
70 evas_object_smart_callback_add(fc, "realize", fac_realize_end, win);
71 evas_object_smart_callback_add(fc, "unrealize", fac_unrealize, win);
72 elm_box_pack_end(bx, fc);
76 elm_factory_content_set(obj, bx);
81 fac_realize2(void *data, Evas_Object *obj, void *event_info __UNUSED__)
83 Evas_Object *win = data;
87 printf("ADD for factory 2 %p [%i]\n", obj, (BLOK * (int)evas_object_data_get(obj, "num")));
88 bx = elm_box_add(win);
89 elm_box_homogeneous_set(bx, EINA_TRUE);
91 for (i = 0; i < BLOK; i++)
93 fc = elm_factory_add(win);
94 // initial height per factory of 1000
95 // scrollbar will be wrong until enough
96 // children have been realized and the
98 evas_object_data_set(fc, "num", (void *)(i + (BLOK * (int)evas_object_data_get(obj, "num"))));
99 evas_object_size_hint_min_set(fc, 0, 1000);
100 evas_object_size_hint_weight_set(fc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
101 evas_object_size_hint_align_set(fc, EVAS_HINT_FILL, EVAS_HINT_FILL);
102 evas_object_smart_callback_add(fc, "realize", fac_realize3, win);
103 evas_object_smart_callback_add(fc, "unrealize", fac_unrealize, win);
104 elm_box_pack_end(bx, fc);
105 evas_object_show(fc);
108 elm_factory_content_set(obj, bx);
109 evas_object_show(bx);
113 fac_realize1(void *data, Evas_Object *obj, void *event_info __UNUSED__)
115 Evas_Object *win = data;
116 Evas_Object *bx, *fc;
119 printf("ADD for factory 1 %p [%i]\n", obj, (BLOK * (int)evas_object_data_get(obj, "num")));
120 bx = elm_box_add(win);
121 elm_box_homogeneous_set(bx, EINA_TRUE);
123 for (i = 0; i < BLOK; i++)
125 fc = elm_factory_add(win);
126 // initial height per factory of 1000
127 // scrollbar will be wrong until enough
128 // children have been realized and the
129 // real size is known
130 evas_object_data_set(fc, "num", (void *)(i + (BLOK * (int)evas_object_data_get(obj, "num"))));
131 evas_object_size_hint_min_set(fc, 0, 1000);
132 evas_object_size_hint_weight_set(fc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
133 evas_object_size_hint_align_set(fc, EVAS_HINT_FILL, EVAS_HINT_FILL);
134 evas_object_smart_callback_add(fc, "realize", fac_realize2, win);
135 evas_object_smart_callback_add(fc, "unrealize", fac_unrealize, win);
136 elm_box_pack_end(bx, fc);
137 evas_object_show(fc);
140 elm_factory_content_set(obj, bx);
141 evas_object_show(bx);
145 test_factory(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
147 Evas_Object *win, *bg, *bx, *sc, *fc;
150 win = elm_win_add(NULL, "factory", ELM_WIN_BASIC);
151 elm_win_title_set(win, "Factory");
152 elm_win_autodel_set(win, EINA_TRUE);
154 bg = elm_bg_add(win);
155 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
156 elm_win_resize_object_add(win, bg);
157 evas_object_show(bg);
159 bx = elm_box_add(win);
160 elm_box_homogeneous_set(bx, EINA_TRUE);
161 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
163 for (i = 0; i < BLOK; i++)
165 fc = elm_factory_add(win);
166 // initial height per factory of 1000
167 // scrollbar will be wrong until enough
168 // children have been realized and the
169 // real size is known
170 evas_object_data_set(fc, "num", (void *)i);
171 evas_object_size_hint_min_set(fc, 0, 1000);
172 evas_object_size_hint_weight_set(fc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
173 evas_object_size_hint_align_set(fc, EVAS_HINT_FILL, EVAS_HINT_FILL);
174 evas_object_smart_callback_add(fc, "realize", fac_realize1, win);
175 evas_object_smart_callback_add(fc, "unrealize", fac_unrealize, win);
176 elm_box_pack_end(bx, fc);
177 evas_object_show(fc);
180 sc = elm_scroller_add(win);
181 elm_scroller_bounce_set(sc, EINA_FALSE, EINA_TRUE);
182 evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
183 elm_win_resize_object_add(win, sc);
185 elm_scroller_content_set(sc, bx);
186 evas_object_show(bx);
188 evas_object_show(sc);
190 evas_object_resize(win, 320, 480);
191 evas_object_show(win);