add visual feedback for multi-touch test

SVN revision: 45274
This commit is contained in:
Carsten Haitzler 2010-01-18 05:31:48 +00:00
parent 03dde19ac8
commit 5018bd5a3d
4 changed files with 58 additions and 2 deletions

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -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";
}
}
}
}
}

View File

@ -1,6 +1,10 @@
#include <Elementary.h>
#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);