summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmanuele Aina <emanuele.aina@collabora.com>2012-11-20 17:03:12 (GMT)
committerEmanuele Aina <emanuele.aina@collabora.com>2012-11-26 12:29:36 (GMT)
commitad288c80616ad1b643ddf5f7a9c599462338f2c4 (patch)
treefaa5cfae577b317da8259c393aa33f0d6f79e97c
parentf57fc569d29abc683ae1ca639244dcb74baca360 (diff)
downloadclutter-ad288c80616ad1b643ddf5f7a9c599462338f2c4.tar.gz
clutter-ad288c80616ad1b643ddf5f7a9c599462338f2c4.tar.xz
tests: Print the modifiers state on mouse/touch events
-rw-r--r--tests/interactive/test-events.c99
1 files changed, 77 insertions, 22 deletions
diff --git a/tests/interactive/test-events.c b/tests/interactive/test-events.c
index bdf7e08..3eef6f5 100644
--- a/tests/interactive/test-events.c
+++ b/tests/interactive/test-events.c
@@ -50,6 +50,55 @@ get_event_type_name (const ClutterEvent *event)
}
}
+static gchar *
+get_event_state_string (const ClutterEvent *event)
+{
+ gchar *mods[18];
+ int i = 0;
+ ClutterModifierType state = clutter_event_get_state (event);
+
+ if (state & CLUTTER_SHIFT_MASK)
+ mods[i++] = "shift";
+ if (state & CLUTTER_LOCK_MASK)
+ mods[i++] = "lock";
+ if (state & CLUTTER_CONTROL_MASK)
+ mods[i++] = "ctrl";
+ if (state & CLUTTER_MOD1_MASK)
+ mods[i++] = "mod1";
+ if (state & CLUTTER_MOD2_MASK)
+ mods[i++] = "mod2";
+ if (state & CLUTTER_MOD3_MASK)
+ mods[i++] = "mod3";
+ if (state & CLUTTER_MOD4_MASK)
+ mods[i++] = "mod4";
+ if (state & CLUTTER_MOD5_MASK)
+ mods[i++] = "mod5";
+ if (state & CLUTTER_BUTTON1_MASK)
+ mods[i++] = "btn1";
+ if (state & CLUTTER_BUTTON2_MASK)
+ mods[i++] = "btn2";
+ if (state & CLUTTER_BUTTON3_MASK)
+ mods[i++] = "btn3";
+ if (state & CLUTTER_BUTTON4_MASK)
+ mods[i++] = "btn4";
+ if (state & CLUTTER_BUTTON5_MASK)
+ mods[i++] = "btn5";
+ if (state & CLUTTER_SUPER_MASK)
+ mods[i++] = "super";
+ if (state & CLUTTER_HYPER_MASK)
+ mods[i++] = "hyper";
+ if (state & CLUTTER_META_MASK)
+ mods[i++] = "meta";
+ if (state & CLUTTER_RELEASE_MASK)
+ mods[i++] = "release";
+
+ if (i == 0)
+ mods[i++] = "-";
+
+ mods[i] = NULL;
+ return g_strjoinv (",", mods);
+}
+
static void
stage_state_cb (ClutterStage *stage,
gpointer data)
@@ -186,6 +235,7 @@ input_cb (ClutterActor *actor,
ClutterActor *stage = clutter_actor_get_stage (actor);
ClutterActor *source_actor = clutter_event_get_source (event);
ClutterPoint position;
+ gchar *state;
gchar keybuf[128];
gint device_id;
gint source_device_id = 0;
@@ -194,6 +244,8 @@ input_cb (ClutterActor *actor,
if (clutter_event_get_source_device (event) != NULL)
source_device_id = clutter_input_device_get_device_id (clutter_event_get_source_device (event));
+ state = get_event_state_string (event);
+
switch (event->type)
{
case CLUTTER_KEY_PRESS:
@@ -210,43 +262,43 @@ input_cb (ClutterActor *actor,
break;
case CLUTTER_MOTION:
clutter_event_get_position (event, &position);
- g_print ("[%s] MOTION (coords:%.02f,%.02f device:%d/%d)",
+ g_print ("[%s] MOTION (coords:%.02f,%.02f device:%d/%d state:%s)",
clutter_actor_get_name (source_actor), position.x, position.y,
- device_id, source_device_id);
+ device_id, source_device_id, state);
break;
case CLUTTER_ENTER:
- g_print ("[%s] ENTER (from:%s device:%d/%d)",
+ g_print ("[%s] ENTER (from:%s device:%d/%d state:%s)",
clutter_actor_get_name (source_actor),
clutter_event_get_related (event) != NULL
? clutter_actor_get_name (clutter_event_get_related (event))
: "<out of stage>",
- device_id, source_device_id);
+ device_id, source_device_id, state);
break;
case CLUTTER_LEAVE:
- g_print ("[%s] LEAVE (to:%s device:%d/%d)",
+ g_print ("[%s] LEAVE (to:%s device:%d/%d state:%s)",
clutter_actor_get_name (source_actor),
clutter_event_get_related (event) != NULL
? clutter_actor_get_name (clutter_event_get_related (event))
: "<out of stage>",
- device_id, source_device_id);
+ device_id, source_device_id, state);
break;
case CLUTTER_BUTTON_PRESS:
clutter_event_get_position (event, &position);
- g_print ("[%s] BUTTON PRESS (button:%i, click count:%i coords:%.02f,%.02f device:%d/%d)",
+ g_print ("[%s] BUTTON PRESS (button:%i, click count:%i coords:%.02f,%.02f device:%d/%d, state:%s)",
clutter_actor_get_name (source_actor),
clutter_event_get_button (event),
clutter_event_get_click_count (event),
position.x, position.y,
- device_id, source_device_id);
+ device_id, source_device_id, state);
break;
case CLUTTER_BUTTON_RELEASE:
clutter_event_get_position (event, &position);
- g_print ("[%s] BUTTON RELEASE (button:%i, click count:%i coords:%.02f,%.02f device:%d/%d)",
+ g_print ("[%s] BUTTON RELEASE (button:%i, click count:%i coords:%.02f,%.02f device:%d/%d state:%s)",
clutter_actor_get_name (source_actor),
clutter_event_get_button (event),
clutter_event_get_click_count (event),
position.x, position.y,
- device_id, source_device_id);
+ device_id, source_device_id, state);
if (source_actor == stage)
clutter_stage_set_key_focus (CLUTTER_STAGE (stage), NULL);
@@ -256,24 +308,24 @@ input_cb (ClutterActor *actor,
break;
case CLUTTER_TOUCH_BEGIN:
clutter_event_get_position (event, &position);
- g_print ("[%s] TOUCH BEGIN (coords:%.02f,%.02f device:%d/%d)",
+ g_print ("[%s] TOUCH BEGIN (coords:%.02f,%.02f device:%d/%d state:%s)",
clutter_actor_get_name (source_actor),
position.x, position.y,
- device_id, source_device_id);
+ device_id, source_device_id, state);
break;
case CLUTTER_TOUCH_UPDATE:
clutter_event_get_position (event, &position);
- g_print ("[%s] TOUCH UPDATE (coords:%.02f,%.02f device:%d/%d)",
+ g_print ("[%s] TOUCH UPDATE (coords:%.02f,%.02f device:%d/%d state:%s)",
clutter_actor_get_name (source_actor),
position.x, position.y,
- device_id, source_device_id);
+ device_id, source_device_id, state);
break;
case CLUTTER_TOUCH_END:
clutter_event_get_position (event, &position);
- g_print ("[%s] TOUCH END (coords:%.02f,%.02f device:%d/%d)",
- clutter_actor_get_name (source_actor),
- position.x, position.y,
- device_id, source_device_id);
+ g_print ("[%s] TOUCH END (coords:%.02f,%.02f device:%d/%d state:%s)",
+ clutter_actor_get_name (source_actor),
+ position.x, position.y,
+ device_id, source_device_id, state);
break;
case CLUTTER_SCROLL:
{
@@ -283,16 +335,17 @@ input_cb (ClutterActor *actor,
{
gdouble dx, dy;
clutter_event_get_scroll_delta (event, &dx, &dy);
- g_print ("[%s] BUTTON SCROLL (direction:smooth %.02f,%.02f)",
- clutter_actor_get_name (source_actor), dx, dy);
+ g_print ("[%s] BUTTON SCROLL (direction:smooth %.02f,%.02f state:%s)",
+ clutter_actor_get_name (source_actor), dx, dy, state);
}
else
- g_print ("[%s] BUTTON SCROLL (direction:%s)",
+ g_print ("[%s] BUTTON SCROLL (direction:%s state:%s)",
clutter_actor_get_name (source_actor),
dir == CLUTTER_SCROLL_UP ? "up" :
dir == CLUTTER_SCROLL_DOWN ? "down" :
dir == CLUTTER_SCROLL_LEFT ? "left" :
- dir == CLUTTER_SCROLL_RIGHT ? "right" : "?");
+ dir == CLUTTER_SCROLL_RIGHT ? "right" : "?",
+ state);
}
break;
case CLUTTER_STAGE_STATE:
@@ -311,6 +364,8 @@ input_cb (ClutterActor *actor,
return FALSE;
}
+ g_free (state);
+
if (source_actor == actor)
g_print (" *source*");