diff options
author | David Walter Seikel | 2012-04-22 09:20:32 +1000 |
---|---|---|
committer | David Walter Seikel | 2012-04-22 09:20:32 +1000 |
commit | 3ad3455551be0d7859ecb02290376206d5e66498 (patch) | |
tree | 497917e12b4d7f458dff9765d9b53f64c4e03fc3 /libraries/elementary/src/examples/diskselector_example_02.c | |
parent | Update EFL to latest beta. (diff) | |
download | SledjHamr-3ad3455551be0d7859ecb02290376206d5e66498.zip SledjHamr-3ad3455551be0d7859ecb02290376206d5e66498.tar.gz SledjHamr-3ad3455551be0d7859ecb02290376206d5e66498.tar.bz2 SledjHamr-3ad3455551be0d7859ecb02290376206d5e66498.tar.xz |
And actually include new files, plus elementary libraries.
Diffstat (limited to 'libraries/elementary/src/examples/diskselector_example_02.c')
-rw-r--r-- | libraries/elementary/src/examples/diskselector_example_02.c | 349 |
1 files changed, 349 insertions, 0 deletions
diff --git a/libraries/elementary/src/examples/diskselector_example_02.c b/libraries/elementary/src/examples/diskselector_example_02.c new file mode 100644 index 0000000..443a868 --- /dev/null +++ b/libraries/elementary/src/examples/diskselector_example_02.c | |||
@@ -0,0 +1,349 @@ | |||
1 | /** | ||
2 | * Elementary's <b>diskselector widget</b> example, illustrating its | ||
3 | * covering most of item functions. | ||
4 | * | ||
5 | * See stdout/stderr for output. Compile with: | ||
6 | * | ||
7 | * @verbatim | ||
8 | * gcc -g diskselector_example_02.c -o diskselector_example_02 `pkg-config --cflags --libs elementary` | ||
9 | * @endverbatim | ||
10 | */ | ||
11 | |||
12 | #include <Elementary.h> | ||
13 | |||
14 | static int counter = 3; | ||
15 | |||
16 | static void | ||
17 | _on_done(void *data, | ||
18 | Evas_Object *obj, | ||
19 | void *event_info) | ||
20 | { | ||
21 | elm_exit(); | ||
22 | } | ||
23 | |||
24 | static void | ||
25 | _add_cb(void *data, Evas_Object *obj, void *event_info) | ||
26 | { | ||
27 | Elm_Object_Item *ds_it; | ||
28 | Evas_Object *ds = data; | ||
29 | char label[32]; | ||
30 | |||
31 | snprintf(label, sizeof(label), "Item %i", counter++); | ||
32 | ds_it = elm_diskselector_item_append(ds, label, NULL, NULL, NULL); | ||
33 | if (!ds_it) printf("Error adding item\n"); | ||
34 | } | ||
35 | |||
36 | static void | ||
37 | _add_ic_cb(void *data, Evas_Object *obj, void *event_info) | ||
38 | { | ||
39 | Elm_Object_Item *ds_it; | ||
40 | Evas_Object *ic, *ds = data; | ||
41 | char label[32]; | ||
42 | |||
43 | snprintf(label, sizeof(label), "Item %i", counter++); | ||
44 | ic = elm_icon_add(ds); | ||
45 | elm_icon_standard_set(ic, "home"); | ||
46 | |||
47 | ds_it = elm_diskselector_item_append(ds, label, ic, NULL, NULL); | ||
48 | if (!ds_it) printf("Error adding item with icon\n"); | ||
49 | } | ||
50 | |||
51 | static void | ||
52 | _sel_cb(void *data, Evas_Object *obj, void *event_info) | ||
53 | { | ||
54 | Elm_Object_Item *ds_it = event_info; | ||
55 | printf("Selected label: %s\n", elm_object_item_text_get(ds_it)); | ||
56 | } | ||
57 | |||
58 | static void | ||
59 | _add_func_cb(void *data, Evas_Object *obj, void *event_info) | ||
60 | { | ||
61 | Elm_Object_Item *ds_it; | ||
62 | Evas_Object *ds = data; | ||
63 | char label[32]; | ||
64 | |||
65 | snprintf(label, sizeof(label), "Item %i", counter++); | ||
66 | ds_it = elm_diskselector_item_append(ds, label, NULL, _sel_cb, NULL); | ||
67 | if (!ds_it) printf("Error adding item\n"); | ||
68 | } | ||
69 | |||
70 | static void | ||
71 | _sel_data_cb(void *data, Evas_Object *obj, void *event_info) | ||
72 | { | ||
73 | char *content = data; | ||
74 | Elm_Object_Item *ds_it = event_info; | ||
75 | printf("Selected label: %s with data: %s\n", | ||
76 | elm_object_item_text_get(ds_it), content); | ||
77 | } | ||
78 | |||
79 | static void | ||
80 | _free_data(void *data, Evas_Object *obj, void *event_info) | ||
81 | { | ||
82 | free(data); | ||
83 | } | ||
84 | |||
85 | static void | ||
86 | _add_data_cb(void *data, Evas_Object *obj, void *event_info) | ||
87 | { | ||
88 | Elm_Object_Item *ds_it; | ||
89 | Evas_Object *ds = data; | ||
90 | char label[32]; | ||
91 | char *content = malloc(sizeof(char) * 32); | ||
92 | |||
93 | snprintf(content, 32, "Item content %i", counter); | ||
94 | snprintf(label, sizeof(label), "Item %i", counter++); | ||
95 | ds_it = elm_diskselector_item_append(ds, label, NULL, _sel_data_cb, content); | ||
96 | if (!ds_it) { | ||
97 | printf("Error adding item\n"); | ||
98 | return; | ||
99 | } | ||
100 | elm_object_item_del_cb_set(ds_it, _free_data); | ||
101 | } | ||
102 | |||
103 | static void | ||
104 | _del_cb(void *data, Evas_Object *obj, void *event_info) | ||
105 | { | ||
106 | Elm_Object_Item *selected_ds_it; | ||
107 | Evas_Object *ds = data; | ||
108 | |||
109 | selected_ds_it = elm_diskselector_selected_item_get(ds); | ||
110 | elm_object_item_del(selected_ds_it); | ||
111 | } | ||
112 | |||
113 | static void | ||
114 | _unselect_cb(void *data, Evas_Object *obj, void *event_info) | ||
115 | { | ||
116 | Elm_Object_Item *selected_ds_it; | ||
117 | Evas_Object *ds = data; | ||
118 | |||
119 | selected_ds_it = elm_diskselector_selected_item_get(ds); | ||
120 | elm_diskselector_item_selected_set(selected_ds_it, EINA_FALSE); | ||
121 | } | ||
122 | |||
123 | static void | ||
124 | _print_cb(void *data, Evas_Object *obj, void *event_info) | ||
125 | { | ||
126 | const Eina_List *l, *items; | ||
127 | Elm_Object_Item *ds_it; | ||
128 | Evas_Object *ds = data; | ||
129 | |||
130 | items = elm_diskselector_items_get(ds); | ||
131 | EINA_LIST_FOREACH(items, l, ds_it) | ||
132 | printf("%s\n", elm_object_item_text_get(ds_it)); | ||
133 | } | ||
134 | |||
135 | static void | ||
136 | _clear_cb(void *data, Evas_Object *obj, void *event_info) | ||
137 | { | ||
138 | Evas_Object *ds = data; | ||
139 | elm_diskselector_clear(ds); | ||
140 | } | ||
141 | |||
142 | static void | ||
143 | _select_first_cb(void *data, Evas_Object *obj, void *event_info) | ||
144 | { | ||
145 | Elm_Object_Item *first_ds_it; | ||
146 | Evas_Object *ds = data; | ||
147 | |||
148 | first_ds_it = elm_diskselector_first_item_get(ds); | ||
149 | if (first_ds_it) | ||
150 | elm_diskselector_item_selected_set(first_ds_it, EINA_TRUE); | ||
151 | } | ||
152 | |||
153 | static void | ||
154 | _select_last_cb(void *data, Evas_Object *obj, void *event_info) | ||
155 | { | ||
156 | Elm_Object_Item *last_ds_it; | ||
157 | Evas_Object *ds = data; | ||
158 | |||
159 | last_ds_it = elm_diskselector_last_item_get(ds); | ||
160 | if (last_ds_it) | ||
161 | elm_diskselector_item_selected_set(last_ds_it, EINA_TRUE); | ||
162 | } | ||
163 | |||
164 | static void | ||
165 | _select_next_cb(void *data, Evas_Object *obj, void *event_info) | ||
166 | { | ||
167 | Elm_Object_Item *selected_ds_it, *next_ds_it; | ||
168 | Evas_Object *ds = data; | ||
169 | |||
170 | selected_ds_it = elm_diskselector_selected_item_get(ds); | ||
171 | if (!selected_ds_it) return; | ||
172 | |||
173 | next_ds_it = elm_diskselector_item_next_get(selected_ds_it); | ||
174 | if (next_ds_it) | ||
175 | elm_diskselector_item_selected_set(next_ds_it, EINA_TRUE); | ||
176 | } | ||
177 | |||
178 | static void | ||
179 | _select_prev_cb(void *data, Evas_Object *obj, void *event_info) | ||
180 | { | ||
181 | Elm_Object_Item *selected_ds_it, *prev_ds_it; | ||
182 | Evas_Object *ds = data; | ||
183 | |||
184 | selected_ds_it = elm_diskselector_selected_item_get(ds); | ||
185 | if (!selected_ds_it) return; | ||
186 | |||
187 | prev_ds_it = elm_diskselector_item_prev_get(selected_ds_it); | ||
188 | if (prev_ds_it) | ||
189 | elm_diskselector_item_selected_set(prev_ds_it, EINA_TRUE); | ||
190 | } | ||
191 | |||
192 | EAPI_MAIN int | ||
193 | elm_main(int argc, char **argv) | ||
194 | { | ||
195 | Evas_Object *win, *bg, *bx, *hbx, *ds, *bt; | ||
196 | |||
197 | win = elm_win_add(NULL, "diskselector", ELM_WIN_BASIC); | ||
198 | elm_win_title_set(win, "Diskselector Items Example"); | ||
199 | evas_object_smart_callback_add(win, "delete,request", _on_done, NULL); | ||
200 | |||
201 | bg = elm_bg_add(win); | ||
202 | elm_win_resize_object_add(win, bg); | ||
203 | evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
204 | evas_object_show(bg); | ||
205 | |||
206 | bx = elm_box_add(win); | ||
207 | evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
208 | elm_win_resize_object_add(win, bx); | ||
209 | evas_object_show(bx); | ||
210 | |||
211 | ds = elm_diskselector_add(win); | ||
212 | evas_object_size_hint_weight_set(ds, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
213 | evas_object_size_hint_align_set(ds, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
214 | elm_box_pack_end(bx, ds); | ||
215 | evas_object_show(ds); | ||
216 | |||
217 | elm_diskselector_item_append(ds, "Item 0", NULL, NULL, NULL); | ||
218 | elm_diskselector_item_append(ds, "Item 1", NULL, NULL, NULL); | ||
219 | elm_diskselector_item_append(ds, "Item 2", NULL, NULL, NULL); | ||
220 | |||
221 | hbx = elm_box_add(win); | ||
222 | elm_box_horizontal_set(hbx, EINA_TRUE); | ||
223 | evas_object_size_hint_weight_set(hbx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
224 | evas_object_size_hint_align_set(hbx, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
225 | elm_box_pack_end(bx, hbx); | ||
226 | evas_object_show(hbx); | ||
227 | |||
228 | bt = elm_button_add(win); | ||
229 | elm_object_text_set(bt, "Append item"); | ||
230 | evas_object_smart_callback_add(bt, "clicked", _add_cb, ds); | ||
231 | elm_box_pack_end(hbx, bt); | ||
232 | evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
233 | evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
234 | evas_object_show(bt); | ||
235 | |||
236 | bt = elm_button_add(win); | ||
237 | elm_object_text_set(bt, "Append with icon"); | ||
238 | evas_object_smart_callback_add(bt, "clicked", _add_ic_cb, ds); | ||
239 | elm_box_pack_end(hbx, bt); | ||
240 | evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
241 | evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
242 | evas_object_show(bt); | ||
243 | |||
244 | bt = elm_button_add(win); | ||
245 | elm_object_text_set(bt, "Append with selected function"); | ||
246 | evas_object_smart_callback_add(bt, "clicked", _add_func_cb, ds); | ||
247 | elm_box_pack_end(hbx, bt); | ||
248 | evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
249 | evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
250 | evas_object_show(bt); | ||
251 | |||
252 | bt = elm_button_add(win); | ||
253 | elm_object_text_set(bt, "Append with data"); | ||
254 | evas_object_smart_callback_add(bt, "clicked", _add_data_cb, ds); | ||
255 | elm_box_pack_end(hbx, bt); | ||
256 | evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
257 | evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
258 | evas_object_show(bt); | ||
259 | |||
260 | hbx = elm_box_add(win); | ||
261 | elm_box_horizontal_set(hbx, EINA_TRUE); | ||
262 | evas_object_size_hint_weight_set(hbx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
263 | evas_object_size_hint_align_set(hbx, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
264 | elm_box_pack_end(bx, hbx); | ||
265 | evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
266 | evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
267 | evas_object_show(hbx); | ||
268 | |||
269 | bt = elm_button_add(win); | ||
270 | elm_object_text_set(bt, "Delete item"); | ||
271 | evas_object_smart_callback_add(bt, "clicked", _del_cb, ds); | ||
272 | elm_box_pack_end(hbx, bt); | ||
273 | evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
274 | evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
275 | evas_object_show(bt); | ||
276 | |||
277 | bt = elm_button_add(win); | ||
278 | elm_object_text_set(bt, "Unselect item"); | ||
279 | evas_object_smart_callback_add(bt, "clicked", _unselect_cb, ds); | ||
280 | elm_box_pack_end(hbx, bt); | ||
281 | evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
282 | evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
283 | evas_object_show(bt); | ||
284 | |||
285 | bt = elm_button_add(win); | ||
286 | elm_object_text_set(bt, "Print items"); | ||
287 | evas_object_smart_callback_add(bt, "clicked", _print_cb, ds); | ||
288 | elm_box_pack_end(hbx, bt); | ||
289 | evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
290 | evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
291 | evas_object_show(bt); | ||
292 | |||
293 | bt = elm_button_add(win); | ||
294 | elm_object_text_set(bt, "Clear"); | ||
295 | evas_object_smart_callback_add(bt, "clicked", _clear_cb, ds); | ||
296 | elm_box_pack_end(hbx, bt); | ||
297 | evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
298 | evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
299 | evas_object_show(bt); | ||
300 | |||
301 | hbx = elm_box_add(win); | ||
302 | elm_box_horizontal_set(hbx, EINA_TRUE); | ||
303 | evas_object_size_hint_weight_set(hbx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
304 | evas_object_size_hint_align_set(hbx, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
305 | elm_box_pack_end(bx, hbx); | ||
306 | evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
307 | evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
308 | evas_object_show(hbx); | ||
309 | |||
310 | bt = elm_button_add(win); | ||
311 | elm_object_text_set(bt, "Select first item"); | ||
312 | evas_object_smart_callback_add(bt, "clicked", _select_first_cb, ds); | ||
313 | elm_box_pack_end(hbx, bt); | ||
314 | evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
315 | evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
316 | evas_object_show(bt); | ||
317 | |||
318 | bt = elm_button_add(win); | ||
319 | elm_object_text_set(bt, "Select last item"); | ||
320 | evas_object_smart_callback_add(bt, "clicked", _select_last_cb, ds); | ||
321 | elm_box_pack_end(hbx, bt); | ||
322 | evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
323 | evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
324 | evas_object_show(bt); | ||
325 | |||
326 | bt = elm_button_add(win); | ||
327 | elm_object_text_set(bt, "Select next item"); | ||
328 | evas_object_smart_callback_add(bt, "clicked", _select_next_cb, ds); | ||
329 | elm_box_pack_end(hbx, bt); | ||
330 | evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
331 | evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
332 | evas_object_show(bt); | ||
333 | |||
334 | bt = elm_button_add(win); | ||
335 | elm_object_text_set(bt, "Select previous item"); | ||
336 | evas_object_smart_callback_add(bt, "clicked", _select_prev_cb, ds); | ||
337 | elm_box_pack_end(hbx, bt); | ||
338 | evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
339 | evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
340 | evas_object_show(bt); | ||
341 | |||
342 | evas_object_show(win); | ||
343 | |||
344 | elm_run(); | ||
345 | elm_shutdown(); | ||
346 | |||
347 | return 0; | ||
348 | } | ||
349 | ELM_MAIN() | ||