1 #include <Elementary.h>
5 #include <Elementary_Cursor.h>
6 >>>>>>> remotes/origin/upstream
8 # include "elementary_config.h"
10 #ifndef ELM_LIB_QUICKLAUNCH
15 unsigned int state; /* What state we are testing */
16 void *box; /* Use this to get box content */
18 typedef struct _api_data api_data;
22 SCROLLER_POLICY_SET_ON,
23 SCROLLER_POLICY_SET_OFF,
33 ITEM_DEL_NOT_SELECTED,
34 ITEM_DEL, /* delete when selected */
38 typedef enum _api_state api_state;
41 set_api_state(api_data *api)
43 const Eina_List *disks = elm_box_children_get(api->box);
44 if(!eina_list_count(disks))
48 { /* Put all api-changes under switch */
49 case SCROLLER_POLICY_SET_ON: /* 0 */
50 { /* Get first disk */
51 Evas_Object *disk = eina_list_nth(disks, 0);
52 elm_diskselector_scroller_policy_set(disk, ELM_SCROLLER_POLICY_ON, ELM_SCROLLER_POLICY_ON);
56 case SCROLLER_POLICY_SET_OFF: /* 1 */
57 { /* Get first disk */
58 Evas_Object *disk = eina_list_nth(disks, 0);
59 elm_diskselector_scroller_policy_set(disk, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
63 case BOUNCE_SET: /* 2 */
64 { /* Get second disk, cancel bounce */
65 Evas_Object *disk = eina_list_nth(disks, 1);
66 elm_diskselector_bounce_set(disk, EINA_FALSE, EINA_FALSE);
70 case ITEM_LABEL_SET: /* 3 */
71 elm_object_item_text_set(elm_diskselector_selected_item_get(eina_list_nth(disks, 0)), "Label from API");
74 case TOOLTIP_TEXT_SET: /* 4 */
75 elm_object_item_tooltip_text_set(elm_diskselector_selected_item_get(eina_list_nth(disks, 0)), "Tooltip from API");
78 case ITEM_TOOLTIP_UNSET: /* 5 */
79 elm_object_item_tooltip_unset(elm_diskselector_selected_item_get(eina_list_nth(disks, 0)));
82 case ITEM_CURSOR_SET: /* 6 */
83 elm_object_item_cursor_set(elm_diskselector_selected_item_get(eina_list_nth(disks, 0)), ELM_CURSOR_HAND2);
86 case ITEM_CURSOR_UNSET: /* 7 */
87 elm_object_item_cursor_unset(elm_diskselector_selected_item_get(eina_list_nth(disks, 0)));
90 case ITEM_ICON_SET: /* 8 */
91 { /* Set icon of selected item in first disk */
93 Evas_Object *ic = elm_icon_add(elm_object_parent_widget_get(eina_list_nth(disks, 0)));
94 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
95 elm_icon_file_set(ic, buf, NULL);
96 elm_object_item_part_content_set(elm_diskselector_selected_item_get(eina_list_nth(disks, 0)), NULL, ic);
101 case SELECTED_SET: /* 9 */
102 { /* Select NEXT item of third disk */
103 elm_diskselector_item_selected_set(elm_diskselector_last_item_get(eina_list_nth(disks, 1)), EINA_TRUE);
104 elm_diskselector_item_selected_set(elm_diskselector_item_next_get(elm_diskselector_selected_item_get(eina_list_nth(disks, 2))), EINA_TRUE);
108 case ITEM_PREV_GET: /* 10 */
109 { /* Select PREV item of third disk */
110 elm_diskselector_item_selected_set(elm_diskselector_item_prev_get(elm_diskselector_selected_item_get(eina_list_nth(disks, 2))), EINA_TRUE);
114 case ITEM_DEL_NOT_SELECTED: /* 11 */
115 { /* Remove selected item of third disk */
116 elm_object_item_del(elm_diskselector_item_prev_get(elm_diskselector_selected_item_get(eina_list_nth(disks, 2))));
120 case ITEM_DEL: /* 12 */
121 { /* Remove selected item of first disk */
122 elm_object_item_del(elm_diskselector_selected_item_get(eina_list_nth(disks, 1)));
127 elm_diskselector_clear(eina_list_nth(disks, 0));
136 _api_bt_clicked(void *data, Evas_Object *obj, void *event_info __UNUSED__)
137 { /* Will add here a SWITCH command containing code to modify test-object */
138 /* in accordance a->state value. */
142 printf("clicked event on API Button: api_state=<%d>\n", a->state);
145 sprintf(str, "Next API function (%u)", a->state);
146 elm_object_text_set(obj, str);
147 elm_object_disabled_set(obj, a->state == API_STATE_LAST);
149 >>>>>>> remotes/origin/upstream
152 _disk_sel(void *data __UNUSED__, Evas_Object * obj __UNUSED__, void *event_info)
154 Elm_Object_Item *ds_it = event_info;
155 printf("Equinox: %s\n", elm_object_item_text_get(ds_it));
159 _disk_next(void *data __UNUSED__, Evas_Object * obj __UNUSED__, void *event_info)
161 Elm_Object_Item *next_ds_it, *prev_ds_it, *ds_it = event_info;
162 prev_ds_it = elm_diskselector_item_prev_get(ds_it);
163 next_ds_it = elm_diskselector_item_next_get(ds_it);
164 printf("Prev: %s, Next: %s\n", elm_object_item_text_get(prev_ds_it),
165 elm_object_item_text_get(next_ds_it));
169 _print_disk_info_cb(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
171 Elm_Object_Item *ds_it = event_info;
172 printf("Selected label: %s\n", elm_object_item_text_get(ds_it));
177 _disk_create(Evas_Object *win, Eina_Bool round)
179 _disk_create(Evas_Object *win, Eina_Bool rnd)
180 >>>>>>> remotes/origin/upstream
182 Elm_Object_Item *ds_it;
185 di = elm_diskselector_add(win);
187 elm_diskselector_item_append(di, "January", NULL, NULL, NULL);
188 elm_diskselector_item_append(di, "February", NULL, _disk_next, NULL);
189 elm_diskselector_item_append(di, "March", NULL, _disk_sel, NULL);
190 elm_diskselector_item_append(di, "April", NULL, NULL, NULL);
191 elm_diskselector_item_append(di, "May", NULL, NULL, NULL);
192 elm_diskselector_item_append(di, "June", NULL, NULL, NULL);
193 elm_diskselector_item_append(di, "July", NULL, NULL, NULL);
194 ds_it = elm_diskselector_item_append(di, "August", NULL, NULL, NULL);
195 elm_diskselector_item_append(di, "September", NULL, _disk_sel, NULL);
196 elm_diskselector_item_append(di, "October", NULL, NULL, NULL);
197 elm_diskselector_item_append(di, "November", NULL, NULL, NULL);
198 elm_diskselector_item_append(di, "December", NULL, NULL, NULL);
200 elm_diskselector_item_selected_set(ds_it, EINA_TRUE);
202 elm_diskselector_round_set(di, round);
204 elm_diskselector_round_enabled_set(di, rnd);
205 >>>>>>> remotes/origin/upstream
212 test_diskselector(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
214 Evas_Object *win, *bg, *bx, *disk, *ic;
215 Elm_Object_Item *ds_it;
219 _cleanup_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
225 test_diskselector(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
227 Evas_Object *win, *bg, *bx, *disk, *ic, *bxx, *bt;
228 Elm_Object_Item *ds_it;
230 api_data *api = calloc(1, sizeof(api_data));
231 >>>>>>> remotes/origin/upstream
234 char *month_list[] = {
242 win = elm_win_add(NULL, "diskselector", ELM_WIN_BASIC);
243 elm_win_title_set(win, "Disk Selector");
244 elm_win_autodel_set(win, EINA_TRUE);
247 evas_object_event_callback_add(win, EVAS_CALLBACK_FREE, _cleanup_cb, api);
248 >>>>>>> remotes/origin/upstream
250 bg = elm_bg_add(win);
251 elm_win_resize_object_add(win, bg);
252 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
253 evas_object_size_hint_align_set(bg, EVAS_HINT_FILL, EVAS_HINT_FILL);
254 evas_object_show(bg);
258 bxx = elm_box_add(win);
259 elm_win_resize_object_add(win, bxx);
260 evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
261 evas_object_show(bxx);
263 >>>>>>> remotes/origin/upstream
264 bx = elm_box_add(win);
265 elm_win_resize_object_add(win, bx);
266 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
267 evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
269 evas_object_show(bx);
273 evas_object_show(bx);
275 bt = elm_button_add(win);
276 elm_object_text_set(bt, "Next API function");
277 evas_object_smart_callback_add(bt, "clicked", _api_bt_clicked, (void *) api);
278 elm_box_pack_end(bxx, bt);
279 elm_object_disabled_set(bt, api->state == API_STATE_LAST);
280 evas_object_show(bt);
282 elm_box_pack_end(bxx, bx);
284 >>>>>>> remotes/origin/upstream
285 disk = _disk_create(win, EINA_TRUE);
286 evas_object_size_hint_weight_set(disk, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
287 evas_object_size_hint_align_set(disk, EVAS_HINT_FILL, 0.5);
288 elm_box_pack_end(bx, disk);
289 evas_object_show(disk);
290 evas_object_smart_callback_add(disk, "selected", _print_disk_info_cb, NULL);
291 ds_it = elm_diskselector_selected_item_get(disk);
292 elm_diskselector_item_selected_set(ds_it, EINA_FALSE);
294 disk = _disk_create(win, EINA_FALSE);
295 evas_object_size_hint_weight_set(disk, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
296 evas_object_size_hint_align_set(disk, EVAS_HINT_FILL, 0.5);
297 elm_box_pack_end(bx, disk);
298 evas_object_show(disk);
299 evas_object_smart_callback_add(disk, "selected", _print_disk_info_cb, NULL);
300 ds_it = elm_diskselector_first_item_get(disk);
301 ds_it = elm_diskselector_item_next_get(ds_it);
302 elm_diskselector_item_selected_set(ds_it, EINA_TRUE);
304 disk = _disk_create(win, EINA_FALSE);
305 evas_object_size_hint_weight_set(disk, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
306 evas_object_size_hint_align_set(disk, EVAS_HINT_FILL, 0.5);
307 elm_box_pack_end(bx, disk);
308 evas_object_show(disk);
309 evas_object_smart_callback_add(disk, "selected", _print_disk_info_cb, NULL);
311 elm_diskselector_side_label_length_set(disk, 4);
313 elm_diskselector_side_text_max_length_set(disk, 4);
314 >>>>>>> remotes/origin/upstream
316 disk = elm_diskselector_add(win);
317 ic = elm_icon_add(win);
318 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
319 elm_icon_file_set(ic, buf, NULL);
321 elm_icon_scale_set(ic, 1, 1);
323 elm_icon_resizable_set(ic, 1, 1);
324 >>>>>>> remotes/origin/upstream
325 elm_diskselector_item_append(disk, "Sunday", ic, NULL, NULL);
326 elm_diskselector_item_append(disk, "Monday", NULL, NULL, NULL);
327 elm_diskselector_item_append(disk, "Tuesday", NULL, NULL, NULL);
328 elm_diskselector_item_append(disk, "Wednesday", NULL, NULL, NULL);
329 elm_diskselector_item_append(disk, "Thursday", NULL, NULL, NULL);
330 elm_diskselector_item_append(disk, "Friday", NULL, NULL, NULL);
331 elm_diskselector_item_append(disk, "Saturday", NULL, NULL, NULL);
333 elm_diskselector_round_set(disk, EINA_TRUE);
335 elm_diskselector_round_enabled_set(disk, EINA_TRUE);
336 >>>>>>> remotes/origin/upstream
337 evas_object_size_hint_weight_set(disk, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
338 evas_object_size_hint_align_set(disk, EVAS_HINT_FILL, 0.5);
339 elm_box_pack_end(bx, disk);
340 evas_object_show(disk);
341 evas_object_smart_callback_add(disk, "selected", _print_disk_info_cb, NULL);
343 disk = elm_diskselector_add(win);
344 ic = elm_icon_add(win);
345 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
346 elm_icon_file_set(ic, buf, NULL);
348 elm_icon_scale_set(ic, 1, 1);
350 elm_icon_resizable_set(ic, 1, 1);
351 >>>>>>> remotes/origin/upstream
352 elm_diskselector_item_append(disk, "머리스타일", ic, NULL, NULL);
353 elm_diskselector_item_append(disk, "プロが伝授する", NULL, NULL, NULL);
354 elm_diskselector_item_append(disk, "生上访要求政府", NULL, NULL, NULL);
355 elm_diskselector_item_append(disk, "English", NULL, NULL, NULL);
356 elm_diskselector_item_append(disk, "والشريعة", NULL, NULL, NULL);
357 elm_diskselector_item_append(disk, "עִבְרִית", NULL, NULL, NULL);
358 elm_diskselector_item_append(disk, "Grüßen", NULL, NULL, NULL);
360 elm_diskselector_round_set(disk, EINA_TRUE);
362 elm_diskselector_round_enabled_set(disk, EINA_TRUE);
363 >>>>>>> remotes/origin/upstream
364 evas_object_size_hint_weight_set(disk, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
365 evas_object_size_hint_align_set(disk, EVAS_HINT_FILL, 0.5);
366 elm_box_pack_end(bx, disk);
367 evas_object_show(disk);
368 evas_object_smart_callback_add(disk, "selected", _print_disk_info_cb, NULL);
370 // displayed item number setting example
371 disk = elm_diskselector_add(win);
372 elm_diskselector_display_item_num_set(disk, 5);
373 printf("Number of Items in DiskSelector : %d\n",
374 elm_diskselector_display_item_num_get(disk));
376 for (idx = 0; idx < (int)(sizeof(month_list) / sizeof(month_list[0])); idx++)
378 ds_it = elm_diskselector_item_append(disk, month_list[idx], NULL, NULL,
382 elm_diskselector_item_selected_set(ds_it, EINA_TRUE);
384 elm_diskselector_round_set(disk, EINA_TRUE);
386 elm_diskselector_round_enabled_set(disk, EINA_TRUE);
387 >>>>>>> remotes/origin/upstream
388 evas_object_size_hint_weight_set(disk, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
389 evas_object_size_hint_align_set(disk, EVAS_HINT_FILL, 0.5);
390 elm_box_pack_end(bx, disk);
391 evas_object_show(disk);
392 evas_object_smart_callback_add(disk, "selected", _print_disk_info_cb, NULL);
394 // displayed item number setting example
395 disk = elm_diskselector_add(win);
396 elm_diskselector_display_item_num_set(disk, 7);
397 printf("Number of Items in DiskSelector : %d\n",
398 elm_diskselector_display_item_num_get(disk));
400 for (idx = 1; idx < 31; idx++)
402 snprintf(date, sizeof(date), "%d", idx);
403 ds_it = elm_diskselector_item_append(disk, date, NULL, NULL, NULL);
406 elm_diskselector_item_selected_set(ds_it, EINA_TRUE);
408 elm_diskselector_round_set(disk, EINA_TRUE);
410 elm_diskselector_round_enabled_set(disk, EINA_TRUE);
411 >>>>>>> remotes/origin/upstream
412 evas_object_size_hint_weight_set(disk, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
413 evas_object_size_hint_align_set(disk, EVAS_HINT_FILL, 0.5);
414 elm_box_pack_end(bx, disk);
415 evas_object_show(disk);
416 evas_object_smart_callback_add(disk, "selected", _print_disk_info_cb, NULL);
418 evas_object_resize(win, 320, 480);
419 evas_object_show(win);