svn update: 48945 (latest:48959)
[framework/uifw/elementary.git] / src / bin / test_multi.c
1 #include <Elementary.h>
2 #ifndef ELM_LIB_QUICKLAUNCH
3
4 #define IND_NUM 20
5
6 static Evas_Object *indicator[IND_NUM];
7
8 static void
9 _mouse_down(void *data, Evas *e, Evas_Object *o, void *event_info)
10 {
11    Evas_Event_Mouse_Down *ev = event_info;
12 //   Evas_Object *win = data;
13    
14    if (ev->button != 1) return;
15    printf("MOUSE: down @ %4i %4i\n", ev->canvas.x, ev->canvas.y);
16    evas_object_move(indicator[0], ev->canvas.x, ev->canvas.y);
17    evas_object_resize(indicator[0], 1, 1);
18    evas_object_show(indicator[0]);
19 }
20
21 static void
22 _mouse_up(void *data, Evas *e, Evas_Object *o, void *event_info)
23 {
24    Evas_Event_Mouse_Up *ev = event_info;
25 //   Evas_Object *win = data;
26    if (ev->button != 1) return;
27    printf("MOUSE: up   @ %4i %4i\n", ev->canvas.x, ev->canvas.y);
28    evas_object_hide(indicator[0]);
29 }
30
31 static void
32 _mouse_move(void *data, Evas *e, Evas_Object *o, void *event_info)
33 {
34    Evas_Event_Mouse_Move *ev = event_info;
35 //   Evas_Object *win = data;
36    printf("MOUSE: move @ %4i %4i\n", ev->cur.canvas.x, ev->cur.canvas.y);
37    evas_object_move(indicator[0], ev->cur.canvas.x, ev->cur.canvas.y);
38    evas_object_resize(indicator[0], 1, 1);
39 }
40
41
42
43
44 static void
45 _multi_down(void *data, Evas *e, Evas_Object *o, void *event_info)
46 {
47    Evas_Event_Multi_Down *ev = event_info;
48 //   Evas_Object *win = data;
49    printf("MULTI: down @ %4i %4i | dev: %i\n", ev->canvas.x, ev->canvas.y, ev->device);
50    if (ev->device >= IND_NUM) return;
51    evas_object_move(indicator[ev->device], ev->canvas.x, ev->canvas.y);
52    evas_object_resize(indicator[ev->device], 1, 1);
53    evas_object_show(indicator[ev->device]);
54 }
55
56 static void
57 _multi_up(void *data, Evas *e, Evas_Object *o, void *event_info)
58 {
59    Evas_Event_Multi_Up *ev = event_info;
60 //   Evas_Object *win = data;
61    printf("MULTI: up    @ %4i %4i | dev: %i\n", ev->canvas.x, ev->canvas.y, ev->device);
62    if (ev->device >= IND_NUM) return;
63    evas_object_hide(indicator[ev->device]);
64 }
65
66 static void
67 _multi_move(void *data, Evas *e, Evas_Object *o, void *event_info)
68 {
69    Evas_Event_Multi_Move *ev = event_info;
70 //   Evas_Object *win = data;
71    printf("MULTI: move @ %4i %4i | dev: %i\n", ev->cur.canvas.x, ev->cur.canvas.y, ev->device);
72    if (ev->device >= IND_NUM) return;
73    evas_object_move(indicator[ev->device], ev->cur.canvas.x, ev->cur.canvas.y);
74    evas_object_resize(indicator[ev->device], 1, 1);
75 }
76
77
78
79
80 void
81 test_multi(void *data, Evas_Object *obj, void *event_info)
82 {
83    Evas_Object *win, *bg, *r;
84    int i;
85
86    win = elm_win_add(NULL, "bg-plain", ELM_WIN_BASIC);
87    elm_win_title_set(win, "Bg Plain");
88    elm_win_autodel_set(win, 1);
89
90    bg = elm_bg_add(win);
91    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
92    elm_win_resize_object_add(win, bg);
93    evas_object_show(bg);
94
95    r = evas_object_rectangle_add(evas_object_evas_get(win));
96    evas_object_color_set(r, 0, 0, 0, 0);
97    elm_win_resize_object_add(win, r);
98    evas_object_show(r);
99    
100    for (i = 0; i < IND_NUM; i++)
101      {
102         char buf[PATH_MAX];
103         
104         snprintf(buf, sizeof(buf), "%s/objects/multip.edj", PACKAGE_DATA_DIR);
105         indicator[i] = edje_object_add(evas_object_evas_get(win));
106         edje_object_file_set(indicator[i], buf, "point");
107      }
108    
109    evas_object_event_callback_add(r, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down, win);
110    evas_object_event_callback_add(r, EVAS_CALLBACK_MOUSE_UP, _mouse_up, win);
111    evas_object_event_callback_add(r, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move, win);
112    evas_object_event_callback_add(r, EVAS_CALLBACK_MULTI_DOWN, _multi_down, win);
113    evas_object_event_callback_add(r, EVAS_CALLBACK_MULTI_UP, _multi_up, win);
114    evas_object_event_callback_add(r, EVAS_CALLBACK_MULTI_MOVE, _multi_move, win);
115
116    evas_object_size_hint_min_set(bg, 160, 160);
117    evas_object_resize(win, 480, 800);
118    
119    evas_object_show(win);
120 }
121
122 #endif