summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorDanielle Madeley <danielle.madeley@collabora.co.uk>2009-09-02 15:40:47 +1000
committerDanielle Madeley <danielle.madeley@collabora.co.uk>2009-11-18 12:18:30 +1100
commit54ab5c6079ad6b1364eb0d9897a9f229601ad948 (patch)
treeb748fc1c6d8a02eba8134d51caed1837c08b6a83 /examples
parentac32eb95d58ca80385ab4ee85c13c07778e3c9af (diff)
downloadclutter-gtk-54ab5c6079ad6b1364eb0d9897a9f229601ad948.tar.gz
A lot more feedback in expose-test
Diffstat (limited to 'examples')
-rw-r--r--examples/expose-test.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/examples/expose-test.c b/examples/expose-test.c
index b5650d4..e4f004d 100644
--- a/examples/expose-test.c
+++ b/examples/expose-test.c
@@ -26,6 +26,39 @@ expose_monitor (GtkWidget *widget, GdkEventExpose *event, char *str)
return FALSE;
}
+static gboolean
+damage_monitor (GtkWidget *widget, GdkEventExpose *event, char *str)
+{
+ g_print ("damage (%s) - (%i, %i, %i, %i)\n",
+ str,
+ event->area.x, event->area.y,
+ event->area.width, event->area.height);
+
+ return FALSE;
+}
+
+static gboolean
+press_monitor (GtkWidget *widget, GdkEventExpose *event, char *str)
+{
+ g_print ("press (%s)\n", str);
+
+ return FALSE;
+}
+
+static gboolean
+release_monitor (GtkWidget *widget, GdkEventExpose *event, char *str)
+{
+ g_print ("release (%s)\n", str);
+
+ return FALSE;
+}
+
+static void
+paint_monitor (ClutterActor *actor, char *str)
+{
+ g_print ("paint (%s)\n", str);
+}
+
static GtkWidget *
add_button (GtkTable *table, char *stock_id, int row)
{
@@ -38,6 +71,10 @@ add_button (GtkTable *table, char *stock_id, int row)
g_signal_connect (button, "expose-event",
G_CALLBACK (expose_monitor), stock_id);
+ g_signal_connect (button, "button-press-event",
+ G_CALLBACK (press_monitor), stock_id);
+ g_signal_connect (button, "button-release-event",
+ G_CALLBACK (release_monitor), stock_id);
return button;
}
@@ -62,6 +99,19 @@ main (int argc, char **argv)
g_signal_connect (table, "expose-event",
G_CALLBACK (expose_monitor), "table");
+ ClutterActor *stage = gtk_clutter_window_get_stage (GTK_CLUTTER_WINDOW (window));
+ ClutterActor *actor = clutter_group_get_nth_child (CLUTTER_GROUP (stage), 0);
+ GtkWidget *offscreen = gtk_clutter_actor_get_widget (GTK_CLUTTER_ACTOR (actor));
+
+ g_signal_connect (stage, "paint",
+ G_CALLBACK (paint_monitor), "stage");
+ g_signal_connect (actor, "paint",
+ G_CALLBACK (paint_monitor), "actor");
+ g_signal_connect (offscreen, "expose-event",
+ G_CALLBACK (expose_monitor), "offscreen");
+ g_signal_connect (offscreen, "damage-event",
+ G_CALLBACK (damage_monitor), "offscreen");
+
gtk_container_add (GTK_CONTAINER (window), table);
gtk_widget_show_all (window);
gtk_main ();