diff --git a/legacy/elementary/data/objects/Makefile.am b/legacy/elementary/data/objects/Makefile.am index e70ed88c52..67947618eb 100644 --- a/legacy/elementary/data/objects/Makefile.am +++ b/legacy/elementary/data/objects/Makefile.am @@ -6,15 +6,25 @@ EDJE_FLAGS = -v -id $(top_srcdir)/data/objects -fd $(top_srcdir)/data/objects filesdir = $(datadir)/elementary/objects -files_DATA = test.edj +files_DATA = test.edj multip.edj EXTRA_DIST = \ -test.edc over.png under.png sky.jpg clo.png +test.edc \ +multip.edc \ +over.png \ +under.png \ +sky.jpg \ +clo.png test.edj: Makefile $(EXTRA_DIST) $(EDJE_CC) $(EDJE_FLAGS) \ $(top_srcdir)/data/objects/test.edc \ $(top_builddir)/data/objects/test.edj +multip.edj: Makefile $(EXTRA_DIST) + $(EDJE_CC) $(EDJE_FLAGS) \ + $(top_srcdir)/data/objects/multip.edc \ + $(top_builddir)/data/objects/multip.edj + clean-local: rm -f *.edj diff --git a/legacy/elementary/data/objects/cross.png b/legacy/elementary/data/objects/cross.png new file mode 100644 index 0000000000..a3a7a87171 Binary files /dev/null and b/legacy/elementary/data/objects/cross.png differ diff --git a/legacy/elementary/data/objects/multip.edc b/legacy/elementary/data/objects/multip.edc new file mode 100644 index 0000000000..0396e11892 --- /dev/null +++ b/legacy/elementary/data/objects/multip.edc @@ -0,0 +1,17 @@ +collections { + group { name: "point"; + images { + image: "cross.png" COMP; + } + parts { + part { name: "sky"; + mouse_events: 0; + description { state: "default" 0.0; + min: 129 129; + image.normal: "cross.png"; + } + } + } + } +} + diff --git a/legacy/elementary/src/bin/test_multi.c b/legacy/elementary/src/bin/test_multi.c index 8dee69abbf..07f3008e1c 100644 --- a/legacy/elementary/src/bin/test_multi.c +++ b/legacy/elementary/src/bin/test_multi.c @@ -1,6 +1,10 @@ #include #ifndef ELM_LIB_QUICKLAUNCH +#define IND_NUM 20 + +static Evas_Object *indicator[IND_NUM]; + static void _mouse_down(void *data, Evas *e, Evas_Object *o, void *event_info) { @@ -9,6 +13,9 @@ _mouse_down(void *data, Evas *e, Evas_Object *o, void *event_info) if (ev->button != 1) return; printf("MOUSE: down @ %4i %4i\n", ev->canvas.x, ev->canvas.y); + evas_object_move(indicator[0], ev->canvas.x, ev->canvas.y); + evas_object_resize(indicator[0], 1, 1); + evas_object_show(indicator[0]); } static void @@ -18,6 +25,7 @@ _mouse_up(void *data, Evas *e, Evas_Object *o, void *event_info) Evas_Object *win = data; if (ev->button != 1) return; printf("MOUSE: up @ %4i %4i\n", ev->canvas.x, ev->canvas.y); + evas_object_hide(indicator[0]); } static void @@ -26,6 +34,8 @@ _mouse_move(void *data, Evas *e, Evas_Object *o, void *event_info) Evas_Event_Mouse_Move *ev = event_info; Evas_Object *win = data; printf("MOUSE: move @ %4i %4i\n", ev->cur.canvas.x, ev->cur.canvas.y); + evas_object_move(indicator[0], ev->cur.canvas.x, ev->cur.canvas.y); + evas_object_resize(indicator[0], 1, 1); } @@ -37,6 +47,10 @@ _multi_down(void *data, Evas *e, Evas_Object *o, void *event_info) Evas_Event_Multi_Down *ev = event_info; Evas_Object *win = data; printf("MULTI: down @ %4i %4i | dev: %i\n", ev->canvas.x, ev->canvas.y, ev->device); + if (ev->device >= IND_NUM) return; + evas_object_move(indicator[ev->device], ev->canvas.x, ev->canvas.y); + evas_object_resize(indicator[ev->device], 1, 1); + evas_object_show(indicator[ev->device]); } static void @@ -45,6 +59,8 @@ _multi_up(void *data, Evas *e, Evas_Object *o, void *event_info) Evas_Event_Multi_Up *ev = event_info; Evas_Object *win = data; printf("MULTI: up @ %4i %4i | dev: %i\n", ev->canvas.x, ev->canvas.y, ev->device); + if (ev->device >= IND_NUM) return; + evas_object_hide(indicator[ev->device]); } static void @@ -53,6 +69,9 @@ _multi_move(void *data, Evas *e, Evas_Object *o, void *event_info) Evas_Event_Multi_Move *ev = event_info; Evas_Object *win = data; printf("MULTI: move @ %4i %4i | dev: %i\n", ev->cur.canvas.x, ev->cur.canvas.y, ev->device); + if (ev->device >= IND_NUM) return; + evas_object_move(indicator[ev->device], ev->cur.canvas.x, ev->cur.canvas.y); + evas_object_resize(indicator[ev->device], 1, 1); } @@ -62,6 +81,7 @@ void test_multi(void *data, Evas_Object *obj, void *event_info) { Evas_Object *win, *bg, *r; + int i; win = elm_win_add(NULL, "bg-plain", ELM_WIN_BASIC); elm_win_title_set(win, "Bg Plain"); @@ -77,6 +97,15 @@ test_multi(void *data, Evas_Object *obj, void *event_info) elm_win_resize_object_add(win, r); evas_object_show(r); + for (i = 0; i < IND_NUM; i++) + { + char buf[PATH_MAX]; + + snprintf(buf, sizeof(buf), "%s/objects/multip.edj", PACKAGE_DATA_DIR); + indicator[i] = edje_object_add(evas_object_evas_get(win)); + edje_object_file_set(indicator[i], buf, "point"); + } + evas_object_event_callback_add(r, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down, win); evas_object_event_callback_add(r, EVAS_CALLBACK_MOUSE_UP, _mouse_up, win); evas_object_event_callback_add(r, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move, win);