1 #include <Elementary.h>
3 # include "elementary_config.h"
5 #ifndef ELM_LIB_QUICKLAUNCH
8 mode_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
10 Evas_Object *win = data;
14 mbs = evas_object_data_get(win, "mbs");
15 EINA_LIST_FOREACH(mbs, l, mb)
17 if (elm_mapbuf_enabled_get(mb))
19 elm_mapbuf_enabled_set(mb, 0);
21 elm_mapbuf_enabled_set(mb, 1);
23 elm_mapbuf_enabled_set(mb, EINA_FALSE);
25 elm_mapbuf_enabled_set(mb, EINA_TRUE);
26 >>>>>>> remotes/origin/upstream
31 full_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
33 Evas_Object *win = data;
34 elm_win_fullscreen_set(win, !elm_win_fullscreen_get(win));
38 alpha_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
40 Evas_Object *win = data;
44 mbs = evas_object_data_get(win, "mbs");
45 EINA_LIST_FOREACH(mbs, l, mb)
47 elm_mapbuf_alpha_set(mb, elm_check_state_get(obj));
52 smooth_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
54 Evas_Object *win = data;
58 mbs = evas_object_data_get(win, "mbs");
59 EINA_LIST_FOREACH(mbs, l, mb)
61 elm_mapbuf_smooth_set(mb, elm_check_state_get(obj));
66 close_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
68 evas_object_del(data);
74 Evas_Object *tb, *sc, *mb;
77 evas_object_data_del(data, "timer");
78 tb = evas_object_data_get(data, "tb");
79 sc = evas_object_data_get(data, "sc");
80 elm_object_scroll_freeze_push(sc);
81 evas_object_data_set(data, "dragging", (void *)(long)(1));
82 evas_object_color_set(data, 255, 255, 255, 255);
83 list = (Eina_List *)evas_object_data_get
84 (elm_object_top_widget_get(data), "mbs");
85 EINA_LIST_FOREACH(list, l, mb)
86 evas_object_color_set(mb, 128, 128, 128, 128);
87 elm_table_unpack(tb, data);
92 ic_del_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
96 tim = evas_object_data_get(obj, "timer");
99 evas_object_data_del(obj, "timer");
100 ecore_timer_del(tim);
105 ic_down_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info)
107 Evas_Event_Mouse_Down *ev = event_info;
109 Evas_Coord x, y, w, h;
111 evas_object_color_set(data, 128, 0, 0, 128);
113 tim = evas_object_data_get(obj, "timer");
114 if (tim) evas_object_data_del(obj, "timer");
115 tim = ecore_timer_add(1.0, tim_cb, obj);
116 evas_object_data_set(obj, "timer", tim);
118 evas_object_geometry_get(data, &x, &y, &w, &h);
119 evas_object_data_set(obj, "x", (void *)(long)(ev->canvas.x));
120 evas_object_data_set(obj, "y", (void *)(long)(ev->canvas.y));
121 evas_object_data_set(obj, "px", (void *)(long)(x));
122 evas_object_data_set(obj, "py", (void *)(long)(y));
124 if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK)
126 printf("double click %p\n", obj);
131 ic_up_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info)
133 Evas_Event_Mouse_Up *ev = event_info;
136 if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
137 evas_object_color_set(data, 255, 255, 255, 255);
138 tim = evas_object_data_get(obj, "timer");
141 evas_object_data_del(obj, "timer");
142 ecore_timer_del(tim);
144 if (evas_object_data_get(obj, "dragging"))
146 Evas_Object *tb, *sc, *mb;
150 evas_object_data_del(obj, "dragging");
151 tb = evas_object_data_get(obj, "tb");
152 sc = evas_object_data_get(obj, "sc");
153 elm_object_scroll_freeze_pop(sc);
154 tbx = (int)(long)evas_object_data_get(obj, "tbx");
155 tby = (int)(long)evas_object_data_get(obj, "tby");
156 elm_table_pack(tb, obj, tbx, tby, 1, 1);
157 list = (Eina_List *)evas_object_data_get
158 (elm_object_top_widget_get(obj), "mbs");
159 EINA_LIST_FOREACH(list, l, mb)
160 evas_object_color_set(mb, 255, 255, 255, 255);
165 ic_move_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event_info)
167 Evas_Event_Mouse_Move *ev = event_info;
168 if (evas_object_data_get(obj, "dragging"))
170 Evas_Coord x, y, px, py;
172 x = (Evas_Coord)(long)evas_object_data_get(obj, "x");
173 y = (Evas_Coord)(long)evas_object_data_get(obj, "y");
174 px = (Evas_Coord)(long)evas_object_data_get(obj, "px");
175 py = (Evas_Coord)(long)evas_object_data_get(obj, "py");
176 evas_object_move(obj,
177 px + ev->cur.canvas.x - x,
178 py + ev->cur.canvas.y - y);
180 if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
184 tim = evas_object_data_get(obj, "timer");
187 evas_object_data_del(obj, "timer");
188 ecore_timer_del(tim);
190 evas_object_color_set(data, 255, 255, 255, 255);
196 test_launcher(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
198 Evas_Object *win, *bg, *sc, *tb, *pad, *bt, *ic, *lb, *tb2, *mb, *ck, *bx, *bx2;
201 const char *names[] =
203 "Hello", "World", "Spam", "Egg",
204 "Ham", "Good", "Bad", "Milk",
205 "Smell", "Of", "Sky", "Gold",
206 "Hole", "Pig", "And", "Calm"
208 Eina_List *mbs = NULL;
210 win = elm_win_add(NULL, "launcher", ELM_WIN_BASIC);
211 elm_win_title_set(win, "Launcher");
212 elm_win_autodel_set(win, EINA_TRUE);
214 bg = elm_bg_add(win);
215 snprintf(buf, sizeof(buf), "%s/images/sky_04.jpg", elm_app_data_dir_get());
216 elm_bg_file_set(bg, buf, NULL);
217 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
218 elm_win_resize_object_add(win, bg);
219 evas_object_show(bg);
221 bx = elm_box_add(win);
222 elm_box_homogeneous_set(bx, EINA_TRUE);
223 elm_box_horizontal_set(bx, EINA_TRUE);
225 sc = elm_scroller_add(win);
227 elm_scroller_bounce_set(sc, 1, 0);
229 elm_scroller_bounce_set(sc, EINA_TRUE, EINA_FALSE);
230 >>>>>>> remotes/origin/upstream
231 elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
232 evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
233 evas_object_size_hint_fill_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL);
236 for (k = 0 ; k < 8; k++)
238 tb = elm_table_add(win);
239 evas_object_size_hint_weight_set(tb, 0.0, 0.0);
240 evas_object_size_hint_align_set(tb, 0.5, 0.5);
242 pad = evas_object_rectangle_add(evas_object_evas_get(win));
243 evas_object_size_hint_min_set(pad, 470, 4);
244 evas_object_size_hint_weight_set(pad, 0.0, 0.0);
245 evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL);
246 elm_table_pack(tb, pad, 1, 0, 5, 1);
248 pad = evas_object_rectangle_add(evas_object_evas_get(win));
249 evas_object_size_hint_min_set(pad, 470, 4);
250 evas_object_size_hint_weight_set(pad, 0.0, 0.0);
251 evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL);
252 elm_table_pack(tb, pad, 1, 11, 5, 1);
254 pad = evas_object_rectangle_add(evas_object_evas_get(win));
255 evas_object_size_hint_min_set(pad, 4, 4);
256 evas_object_size_hint_weight_set(pad, 0.0, 0.0);
257 evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL);
258 elm_table_pack(tb, pad, 0, 1, 1, 10);
260 pad = evas_object_rectangle_add(evas_object_evas_get(win));
261 evas_object_size_hint_min_set(pad, 4, 4);
262 evas_object_size_hint_weight_set(pad, 0.0, 0.0);
263 evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL);
264 elm_table_pack(tb, pad, 6, 1, 1, 10);
266 mb = elm_mapbuf_add(win);
267 elm_object_content_set(mb, tb);
268 evas_object_show(tb);
270 for (j = 0; j < 5; j++)
272 for (i = 0; i < 5; i++)
274 ic = elm_icon_add(win);
275 elm_object_scale_set(ic, 0.5);
276 snprintf(buf, sizeof(buf), "%s/images/icon_%02i.png", elm_app_data_dir_get(), n);
277 elm_icon_file_set(ic, buf, NULL);
279 elm_icon_scale_set(ic, 0, 0);
281 elm_icon_resizable_set(ic, 0, 0);
282 >>>>>>> remotes/origin/upstream
283 evas_object_size_hint_weight_set(ic, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
284 evas_object_size_hint_align_set(ic, 0.5, 0.5);
285 elm_table_pack(tb, ic, 1 + i, 1 + (j * 2), 1, 1);
286 evas_object_show(ic);
288 lb = elm_label_add(win);
289 elm_object_style_set(lb, "marker");
290 elm_object_text_set(lb, names[m]);
291 evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
292 evas_object_size_hint_align_set(lb, 0.5, 0.5);
293 elm_table_pack(tb, lb, 1 + i, 1 + (j * 2) + 1, 1, 1);
294 evas_object_show(lb);
296 evas_object_event_callback_add(ic, EVAS_CALLBACK_DEL, ic_del_cb, ic);
298 evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_DOWN, ic_down_cb, ic);
299 evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_UP, ic_up_cb, ic);
300 evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_MOVE, ic_move_cb, ic);
302 evas_object_data_set(ic, "lb", lb);
303 evas_object_data_set(ic, "tb", tb);
304 evas_object_data_set(ic, "sc", sc);
305 evas_object_data_set(ic, "bx", bx);
306 evas_object_data_set(ic, "mb", mb);
307 evas_object_data_set(ic, "tbx", (void *)(long)(1 + i));
308 evas_object_data_set(ic, "tby", (void *)(long)(1 + (j * 2)));
310 n++; if (n > 23) n = 0;
311 m++; if (m > 15) m = 0;
315 elm_box_pack_end(bx, mb);
316 evas_object_show(mb);
318 mbs = eina_list_append(mbs, mb);
322 evas_object_data_set(win, "mbs", mbs);
324 bx2 = elm_box_add(win);
325 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
326 elm_box_horizontal_set(bx2, EINA_FALSE);
327 elm_win_resize_object_add(win, bx2);
328 evas_object_show(bx2);
330 elm_object_content_set(sc, bx);
331 evas_object_show(bx);
333 elm_scroller_page_relative_set(sc, 1.0, 1.0);
334 evas_object_show(sc);
336 tb2 = elm_table_add(win);
337 evas_object_size_hint_weight_set(tb2, EVAS_HINT_EXPAND, 0.0);
338 evas_object_size_hint_fill_set(tb2, EVAS_HINT_FILL, EVAS_HINT_FILL);
339 elm_box_pack_end(bx2, tb2);
341 elm_box_pack_end(bx2, sc);
343 ck = elm_check_add(win);
344 elm_object_text_set(ck, "Map");
346 elm_check_state_set(ck, 0);
348 elm_check_state_set(ck, EINA_FALSE);
349 >>>>>>> remotes/origin/upstream
350 evas_object_smart_callback_add(ck, "changed", mode_cb, win);
351 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
352 evas_object_size_hint_align_set(ck, 0.05, 0.99);
353 elm_table_pack(tb2, ck, 0, 0, 1, 1);
354 evas_object_show(ck);
356 ck = elm_check_add(win);
357 elm_object_text_set(ck, "A");
359 elm_check_state_set(ck, 1);
361 elm_check_state_set(ck, EINA_TRUE);
362 >>>>>>> remotes/origin/upstream
363 evas_object_smart_callback_add(ck, "changed", alpha_cb, win);
364 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
365 evas_object_size_hint_align_set(ck, 0.20, 0.99);
366 elm_table_pack(tb2, ck, 1, 0, 1, 1);
367 evas_object_show(ck);
369 ck = elm_check_add(win);
370 elm_object_text_set(ck, "Smo");
372 elm_check_state_set(ck, 1);
374 elm_check_state_set(ck, EINA_TRUE);
375 >>>>>>> remotes/origin/upstream
376 evas_object_smart_callback_add(ck, "changed", smooth_cb, win);
377 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
378 evas_object_size_hint_align_set(ck, 0.40, 0.99);
379 elm_table_pack(tb2, ck, 2, 0, 1, 1);
380 evas_object_show(ck);
382 ck = elm_check_add(win);
383 elm_object_text_set(ck, "FS");
385 elm_check_state_set(ck, 0);
387 elm_check_state_set(ck, EINA_FALSE);
388 >>>>>>> remotes/origin/upstream
389 evas_object_smart_callback_add(ck, "changed", full_cb, win);
390 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
391 evas_object_size_hint_align_set(ck, 0.5, 0.99);
392 elm_table_pack(tb2, ck, 3, 0, 1, 1);
393 evas_object_show(ck);
395 bt = elm_button_add(win);
396 elm_object_text_set(bt, "Close");
397 evas_object_smart_callback_add(bt, "clicked", close_cb, win);
398 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
399 evas_object_size_hint_align_set(bt, 0.95, 0.99);
400 elm_table_pack(tb2, bt, 4, 0, 1, 1);
401 evas_object_show(bt);
403 evas_object_show(tb2);
405 evas_object_resize(win, 480, 800);
406 evas_object_show(win);
410 test_launcher2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
412 Evas_Object *win, *bg, *sc, *bt, *tb2, *mb, *ck, *bx, *ly;
415 Eina_List *mbs = NULL;
417 win = elm_win_add(NULL, "launcher2", ELM_WIN_BASIC);
418 elm_win_title_set(win, "Launcher 2");
419 elm_win_autodel_set(win, EINA_TRUE);
421 bg = elm_bg_add(win);
422 snprintf(buf, sizeof(buf), "%s/images/sky_03.jpg", elm_app_data_dir_get());
423 elm_bg_file_set(bg, buf, NULL);
424 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
425 elm_win_resize_object_add(win, bg);
426 evas_object_show(bg);
428 bx = elm_box_add(win);
429 elm_box_homogeneous_set(bx, EINA_TRUE);
430 elm_box_horizontal_set(bx, EINA_TRUE);
432 for (k = 0 ; k < 8; k++)
434 ly = elm_layout_add(win);
435 snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
436 elm_layout_file_set(ly, buf, "layout");
437 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
439 bt = elm_button_add(win);
440 elm_object_text_set(bt, "Button 1");
441 elm_object_part_content_set(ly, "element1", bt);
442 evas_object_show(bt);
444 bt = elm_button_add(win);
445 elm_object_text_set(bt, "Button 2");
446 elm_object_part_content_set(ly, "element2", bt);
447 evas_object_show(bt);
449 bt = elm_button_add(win);
450 elm_object_text_set(bt, "Button 3");
451 elm_object_part_content_set(ly, "element3", bt);
452 evas_object_show(bt);
454 mb = elm_mapbuf_add(win);
455 elm_object_content_set(mb, ly);
456 evas_object_show(ly);
458 elm_box_pack_end(bx, mb);
459 evas_object_show(mb);
461 mbs = eina_list_append(mbs, mb);
465 evas_object_data_set(win, "mbs", mbs);
467 sc = elm_scroller_add(win);
469 elm_scroller_bounce_set(sc, 1, 0);
471 elm_scroller_bounce_set(sc, EINA_TRUE, EINA_FALSE);
472 >>>>>>> remotes/origin/upstream
473 elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
474 evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
475 elm_win_resize_object_add(win, sc);
477 elm_object_content_set(sc, bx);
478 evas_object_show(bx);
480 elm_scroller_page_relative_set(sc, 1.0, 1.0);
481 evas_object_show(sc);
483 tb2 = elm_table_add(win);
484 evas_object_size_hint_weight_set(tb2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
485 elm_win_resize_object_add(win, tb2);
487 ck = elm_check_add(win);
488 elm_object_text_set(ck, "Map");
490 elm_check_state_set(ck, 0);
492 elm_check_state_set(ck, EINA_FALSE);
493 >>>>>>> remotes/origin/upstream
494 evas_object_smart_callback_add(ck, "changed", mode_cb, win);
495 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
496 evas_object_size_hint_align_set(ck, 0.05, 0.99);
497 elm_table_pack(tb2, ck, 0, 0, 1, 1);
498 evas_object_show(ck);
500 ck = elm_check_add(win);
501 elm_object_text_set(ck, "A");
503 elm_check_state_set(ck, 1);
505 elm_check_state_set(ck, EINA_TRUE);
506 >>>>>>> remotes/origin/upstream
507 evas_object_smart_callback_add(ck, "changed", alpha_cb, win);
508 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
509 evas_object_size_hint_align_set(ck, 0.20, 0.99);
510 elm_table_pack(tb2, ck, 1, 0, 1, 1);
511 evas_object_show(ck);
513 ck = elm_check_add(win);
514 elm_object_text_set(ck, "Smo");
516 elm_check_state_set(ck, 1);
518 elm_check_state_set(ck, EINA_TRUE);
519 >>>>>>> remotes/origin/upstream
520 evas_object_smart_callback_add(ck, "changed", smooth_cb, win);
521 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
522 evas_object_size_hint_align_set(ck, 0.40, 0.99);
523 elm_table_pack(tb2, ck, 2, 0, 1, 1);
524 evas_object_show(ck);
526 ck = elm_check_add(win);
527 elm_object_text_set(ck, "FS");
529 elm_check_state_set(ck, 0);
531 elm_check_state_set(ck, EINA_FALSE);
532 >>>>>>> remotes/origin/upstream
533 evas_object_smart_callback_add(ck, "changed", full_cb, win);
534 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
535 evas_object_size_hint_align_set(ck, 0.5, 0.99);
536 elm_table_pack(tb2, ck, 3, 0, 1, 1);
537 evas_object_show(ck);
539 bt = elm_button_add(win);
540 elm_object_text_set(bt, "Close");
541 evas_object_smart_callback_add(bt, "clicked", close_cb, win);
542 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
543 evas_object_size_hint_align_set(bt, 0.95, 0.99);
544 elm_table_pack(tb2, bt, 4, 0, 1, 1);
545 evas_object_show(bt);
547 evas_object_show(tb2);
549 evas_object_resize(win, 480, 800);
550 evas_object_show(win);
554 l3_mode_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
556 Evas_Object *win = data;
560 mbs = evas_object_data_get(win, "mbs");
561 EINA_LIST_FOREACH(mbs, l, mb)
563 if (elm_mapbuf_enabled_get(mb))
565 elm_mapbuf_enabled_set(mb, 0);
567 elm_mapbuf_enabled_set(mb, EINA_FALSE);
568 >>>>>>> remotes/origin/upstream
570 elm_mapbuf_enabled_set(mb, 1);
575 l3_full_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
577 Evas_Object *win = data;
578 elm_win_fullscreen_set(win, !elm_win_fullscreen_get(win));
582 l3_alpha_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
584 Evas_Object *win = data;
588 mbs = evas_object_data_get(win, "mbs");
589 EINA_LIST_FOREACH(mbs, l, mb)
591 elm_mapbuf_alpha_set(mb, elm_check_state_get(obj));
596 l3_smooth_cb(void *data, Evas_Object *obj, void *event_info __UNUSED__)
598 Evas_Object *win = data;
602 mbs = evas_object_data_get(win, "mbs");
603 EINA_LIST_FOREACH(mbs, l, mb)
605 elm_mapbuf_smooth_set(mb, elm_check_state_get(obj));
610 l3_hidden_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
612 Evas_Object *win = data;
616 mbs = evas_object_data_get(win, "mbs");
617 EINA_LIST_FOREACH(mbs, l, mb)
619 if (evas_object_visible_get(mb)) evas_object_hide(mb);
620 else evas_object_show(mb);
625 l3_close_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
627 evas_object_del(data);
631 l3_tim_cb(void *data)
633 Evas_Object *ly, *ly2, *sc, *mb;
638 evas_object_data_del(data, "timer");
639 ly = evas_object_data_get(data, "ly");
640 ly2 = evas_object_data_get(data, "ly2");
641 sc = evas_object_data_get(data, "sc");
642 elm_object_scroll_freeze_push(sc);
643 evas_object_data_set(data, "dragging", (void *)(long)1);
644 evas_object_color_set(data, 255, 255, 255, 255);
645 list = (Eina_List *)evas_object_data_get
646 (elm_object_top_widget_get(data), "mbs");
647 EINA_LIST_FOREACH(list, l, mb)
648 evas_object_color_set(mb, 128, 128, 128, 128);
649 slx = (int)(long)evas_object_data_get(data, "slx");
650 sly = (int)(long)evas_object_data_get(data, "sly");
651 snprintf(buf, sizeof(buf), "slot.%i.%i", slx, sly);
652 elm_object_part_content_unset(ly, buf);
653 edje_object_signal_emit(elm_layout_edje_get(ly2), "drag", "app");
658 l3_ic_del_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
662 tim = evas_object_data_get(obj, "timer");
665 evas_object_data_del(obj, "timer");
666 ecore_timer_del(tim);
671 l3_ic_down_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info)
673 Evas_Event_Mouse_Down *ev = event_info;
675 Evas_Coord x, y, w, h;
678 tim = evas_object_data_get(obj, "timer");
679 if (tim) evas_object_data_del(obj, "timer");
680 tim = ecore_timer_add(1.0, l3_tim_cb, obj);
681 evas_object_data_set(obj, "timer", tim);
683 ly2 = evas_object_data_get(obj, "ly2");
684 evas_object_geometry_get(ly2, &x, &y, &w, &h);
685 evas_object_data_set(obj, "x", (void *)(long)(ev->canvas.x));
686 evas_object_data_set(obj, "y", (void *)(long)(ev->canvas.y));
687 evas_object_data_set(obj, "px", (void *)(long)(x));
688 evas_object_data_set(obj, "py", (void *)(long)(y));
690 edje_object_signal_emit(elm_layout_edje_get(ly2), "click", "app");
692 if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK)
694 printf("double click %p\n", obj);
699 l3_ic_up_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info)
701 Evas_Event_Mouse_Up *ev = event_info;
705 if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
707 ly2 = evas_object_data_get(obj, "ly2");
708 tim = evas_object_data_get(obj, "timer");
711 evas_object_data_del(obj, "timer");
712 ecore_timer_del(tim);
714 if (evas_object_data_get(obj, "dragging"))
716 Evas_Object *ly, *sc, *mb;
721 evas_object_data_del(obj, "dragging");
722 ly = evas_object_data_get(obj, "ly");
723 sc = evas_object_data_get(obj, "sc");
724 elm_object_scroll_freeze_pop(sc);
725 slx = (int)(long)evas_object_data_get(obj, "slx");
726 sly = (int)(long)evas_object_data_get(obj, "sly");
727 snprintf(buf, sizeof(buf), "slot.%i.%i", slx, sly);
728 elm_object_part_content_set(ly, buf, ly2);
729 list = (Eina_List *)evas_object_data_get
730 (elm_object_top_widget_get(obj), "mbs");
731 EINA_LIST_FOREACH(list, l, mb)
732 evas_object_color_set(mb, 255, 255, 255, 255);
733 edje_object_signal_emit(elm_layout_edje_get(ly2), "drop", "app");
736 edje_object_signal_emit(elm_layout_edje_get(ly2), "unclick", "app");
740 l3_ic_move_cb(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info)
742 Evas_Event_Mouse_Move *ev = event_info;
745 ly2 = evas_object_data_get(obj, "ly2");
747 if (evas_object_data_get(obj, "dragging"))
749 Evas_Coord x, y, px, py;
751 x = (Evas_Coord)(long)evas_object_data_get(obj, "x");
752 y = (Evas_Coord)(long)evas_object_data_get(obj, "y");
753 px = (Evas_Coord)(long)evas_object_data_get(obj, "px");
754 py = (Evas_Coord)(long)evas_object_data_get(obj, "py");
755 evas_object_move(ly2,
756 px + ev->cur.canvas.x - x,
757 py + ev->cur.canvas.y - y);
759 if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD)
763 tim = evas_object_data_get(obj, "timer");
766 evas_object_data_del(obj, "timer");
767 ecore_timer_del(tim);
769 edje_object_signal_emit(elm_layout_edje_get(ly2), "cancel", "app");
775 test_launcher3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
777 Evas_Object *win, *bg, *sc, *tb, *pad, *bt, *ic, *tb2, *mb, *ck, *bx, *bx2, *ly, *ly2;
780 const char *names[] =
782 "Hello", "World", "Spam", "Egg",
783 "Ham", "Good", "Bad", "Milk",
784 "Smell", "Of", "Sky", "Gold",
785 "Hole", "Pig", "And", "Calm"
787 Eina_List *mbs = NULL;
789 win = elm_win_add(NULL, "launcher", ELM_WIN_BASIC);
790 elm_win_title_set(win, "Launcher");
791 elm_win_autodel_set(win, EINA_TRUE);
793 bg = elm_bg_add(win);
794 snprintf(buf, sizeof(buf), "%s/images/sky_04.jpg", elm_app_data_dir_get());
795 elm_bg_file_set(bg, buf, NULL);
796 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
797 elm_win_resize_object_add(win, bg);
798 evas_object_show(bg);
800 bx = elm_box_add(win);
801 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
802 evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
803 elm_box_homogeneous_set(bx, EINA_TRUE);
804 elm_box_horizontal_set(bx, EINA_TRUE);
806 sc = elm_scroller_add(win);
808 elm_scroller_bounce_set(sc, 1, 0);
810 elm_scroller_bounce_set(sc, EINA_TRUE, EINA_FALSE);
811 >>>>>>> remotes/origin/upstream
812 elm_scroller_policy_set(sc, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
813 evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
814 evas_object_size_hint_fill_set(sc, EVAS_HINT_FILL, EVAS_HINT_FILL);
817 for (k = 0 ; k < 8; k++)
819 tb = elm_table_add(win);
820 evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
821 evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL);
823 pad = evas_object_rectangle_add(evas_object_evas_get(win));
824 evas_object_size_hint_min_set(pad, 450, 10);
825 elm_table_pack(tb, pad, 1, 0, 1, 1);
827 pad = evas_object_rectangle_add(evas_object_evas_get(win));
828 evas_object_size_hint_min_set(pad, 450, 10);
829 elm_table_pack(tb, pad, 1, 2, 1, 1);
831 pad = evas_object_rectangle_add(evas_object_evas_get(win));
832 evas_object_size_hint_min_set(pad, 10, 450);
833 elm_table_pack(tb, pad, 0, 1, 1, 1);
835 pad = evas_object_rectangle_add(evas_object_evas_get(win));
836 evas_object_size_hint_min_set(pad, 10, 450);
837 elm_table_pack(tb, pad, 2, 1, 1, 1);
839 mb = elm_mapbuf_add(win);
840 mbs = eina_list_append(mbs, mb);
842 elm_object_content_set(mb, tb);
843 evas_object_show(tb);
844 elm_box_pack_end(bx, mb);
845 evas_object_show(mb);
847 ly = elm_layout_add(win);
848 snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
849 elm_layout_file_set(ly, buf, "launcher_page");
850 evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
851 evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL);
852 elm_table_pack(tb, ly, 1, 1, 1, 1);
853 evas_object_show(ly);
855 for (j = 0; j < 4; j++)
857 for (i = 0; i < 4; i++)
859 ly2 = elm_layout_add(win);
860 snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get());
861 elm_layout_file_set(ly2, buf, "launcher_icon");
862 evas_object_size_hint_weight_set(ly2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
863 evas_object_size_hint_align_set(ly2, EVAS_HINT_FILL, EVAS_HINT_FILL);
864 edje_object_part_text_set(elm_layout_edje_get(ly2), "label", names[m]);
866 ic = elm_icon_add(win);
867 elm_object_scale_set(ic, 0.5);
868 snprintf(buf, sizeof(buf), "%s/images/icon_%02i.png", elm_app_data_dir_get(), n);
869 elm_icon_file_set(ic, buf, NULL);
871 elm_icon_scale_set(ic, 0, 0);
873 elm_icon_resizable_set(ic, 0, 0);
874 >>>>>>> remotes/origin/upstream
875 evas_object_size_hint_weight_set(ic, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
876 evas_object_size_hint_align_set(ic, 0.5, 0.5);
877 elm_object_part_content_set(ly2, "slot", ic);
878 evas_object_show(ic);
880 evas_object_event_callback_add(ic, EVAS_CALLBACK_DEL, l3_ic_del_cb, ic);
882 evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_DOWN, l3_ic_down_cb, ic);
883 evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_UP, l3_ic_up_cb, ic);
884 evas_object_event_callback_add(ic, EVAS_CALLBACK_MOUSE_MOVE, l3_ic_move_cb, ic);
886 evas_object_data_set(ic, "ly", ly);
887 evas_object_data_set(ic, "ly2", ly2);
888 evas_object_data_set(ic, "sc", sc);
889 evas_object_data_set(ic, "bx", bx);
890 evas_object_data_set(ic, "mb", mb);
891 evas_object_data_set(ic, "slx", (void *)(long)(i));
892 evas_object_data_set(ic, "sly", (void *)(long)(j));
894 snprintf(buf, sizeof(buf), "slot.%i.%i", i, j);
895 elm_object_part_content_set(ly, buf, ly2);
896 evas_object_show(ly2);
898 n++; if (n > 23) n = 0;
899 m++; if (m > 15) m = 0;
905 evas_object_data_set(win, "mbs", mbs);
907 bx2 = elm_box_add(win);
908 evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
909 elm_box_horizontal_set(bx2, EINA_FALSE);
910 elm_win_resize_object_add(win, bx2);
911 evas_object_show(bx2);
913 elm_object_content_set(sc, bx);
914 evas_object_show(bx);
916 elm_scroller_page_relative_set(sc, 1.0, 1.0);
917 evas_object_show(sc);
919 tb2 = elm_table_add(win);
920 evas_object_size_hint_weight_set(tb2, EVAS_HINT_EXPAND, 0.0);
921 evas_object_size_hint_fill_set(tb2, EVAS_HINT_FILL, EVAS_HINT_FILL);
922 elm_box_pack_end(bx2, tb2);
924 elm_box_pack_end(bx2, sc);
926 ck = elm_check_add(win);
927 elm_object_text_set(ck, "Map");
929 elm_check_state_set(ck, 0);
931 elm_check_state_set(ck, EINA_FALSE);
932 >>>>>>> remotes/origin/upstream
933 evas_object_smart_callback_add(ck, "changed", l3_mode_cb, win);
934 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
935 evas_object_size_hint_align_set(ck, 0.05, 0.99);
936 elm_table_pack(tb2, ck, 0, 0, 1, 1);
937 evas_object_show(ck);
939 ck = elm_check_add(win);
940 elm_object_text_set(ck, "A");
941 elm_check_state_set(ck, 1);
942 evas_object_smart_callback_add(ck, "changed", l3_alpha_cb, win);
943 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
944 evas_object_size_hint_align_set(ck, 0.20, 0.99);
945 elm_table_pack(tb2, ck, 1, 0, 1, 1);
946 evas_object_show(ck);
948 ck = elm_check_add(win);
949 elm_object_text_set(ck, "Smo");
950 elm_check_state_set(ck, 1);
951 evas_object_smart_callback_add(ck, "changed", l3_smooth_cb, win);
952 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
953 evas_object_size_hint_align_set(ck, 0.40, 0.99);
954 elm_table_pack(tb2, ck, 2, 0, 1, 1);
955 evas_object_show(ck);
957 ck = elm_check_add(win);
958 elm_object_text_set(ck, "FS");
960 elm_check_state_set(ck, 0);
962 elm_check_state_set(ck, EINA_FALSE);
963 >>>>>>> remotes/origin/upstream
964 evas_object_smart_callback_add(ck, "changed", l3_full_cb, win);
965 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
966 evas_object_size_hint_align_set(ck, 0.5, 0.99);
967 elm_table_pack(tb2, ck, 3, 0, 1, 1);
968 evas_object_show(ck);
970 ck = elm_check_add(win);
971 elm_object_text_set(ck, "Hid");
973 elm_check_state_set(ck, 0);
975 elm_check_state_set(ck, EINA_FALSE);
976 >>>>>>> remotes/origin/upstream
977 evas_object_smart_callback_add(ck, "changed", l3_hidden_cb, win);
978 evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
979 evas_object_size_hint_align_set(ck, 0.5, 0.99);
980 elm_table_pack(tb2, ck, 4, 0, 1, 1);
981 evas_object_show(ck);
983 bt = elm_button_add(win);
984 elm_object_text_set(bt, "Close");
985 evas_object_smart_callback_add(bt, "clicked", l3_close_cb, win);
986 evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
987 evas_object_size_hint_align_set(bt, 0.95, 0.99);
988 elm_table_pack(tb2, bt, 5, 0, 1, 1);
989 evas_object_show(bt);
991 evas_object_show(tb2);
993 evas_object_resize(win, 480, 800);
994 evas_object_show(win);