diff options
author | Danielle Madeley <danielle.madeley@collabora.co.uk> | 2009-09-02 15:40:47 +1000 |
---|---|---|
committer | Danielle Madeley <danielle.madeley@collabora.co.uk> | 2009-11-18 12:18:30 +1100 |
commit | 54ab5c6079ad6b1364eb0d9897a9f229601ad948 (patch) | |
tree | b748fc1c6d8a02eba8134d51caed1837c08b6a83 /examples | |
parent | ac32eb95d58ca80385ab4ee85c13c07778e3c9af (diff) | |
download | clutter-gtk-54ab5c6079ad6b1364eb0d9897a9f229601ad948.tar.gz |
A lot more feedback in expose-test
Diffstat (limited to 'examples')
-rw-r--r-- | examples/expose-test.c | 50 |
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 (); |