From c2236bb72aabec2b1e54a6b5d55b7d526ec47f76 Mon Sep 17 00:00:00 2001 From: Matthew Allum Date: Tue, 12 Jun 2007 10:36:28 +0000 Subject: [PATCH] 2007-06-12 Matthew Allum * clutter/clutter-alpha.c: Remove stray g_debug. * clutter/clutter-behaviour-rotate.c: Register private class member. * clutter/clutter-behaviour.c: * clutter/clutter-behaviour.h: Add applied and removed signals. * Makefile.am: * configure.ac: * examples/Makefile.am: * examples/README: * examples/behave.c: * examples/slider.c: * examples/super-oh.c: * examples/test-entry.c: * examples/test-text.c: * examples/test.c: * tests/Makefile.am: Remove examples, moving applicable code into tests. --- ChangeLog | 25 +++ Makefile.am | 2 +- clutter/clutter-alpha.c | 5 - clutter/clutter-behaviour-rotate.c | 2 + clutter/clutter-behaviour.c | 50 +++++- clutter/clutter-behaviour.h | 5 + configure.ac | 1 - examples/Makefile.am | 43 ----- examples/README | 24 --- examples/clutter-logo-800x600.png | Bin 14722 -> 0 bytes examples/slider.c | 196 --------------------- examples/test.c | 151 ---------------- tests/Makefile.am | 7 +- {examples => tests}/redhand.png | Bin examples/super-oh.c => tests/test-actors.c | 0 examples/behave.c => tests/test-behave.c | 0 {examples => tests}/test-entry.c | 0 {examples => tests}/test-text.c | 0 18 files changed, 88 insertions(+), 423 deletions(-) delete mode 100644 examples/Makefile.am delete mode 100644 examples/README delete mode 100644 examples/clutter-logo-800x600.png delete mode 100644 examples/slider.c delete mode 100644 examples/test.c rename {examples => tests}/redhand.png (100%) rename examples/super-oh.c => tests/test-actors.c (100%) rename examples/behave.c => tests/test-behave.c (100%) rename {examples => tests}/test-entry.c (100%) rename {examples => tests}/test-text.c (100%) diff --git a/ChangeLog b/ChangeLog index 87b69ff1c..c278f17ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,28 @@ +2007-06-12 Matthew Allum + + * clutter/clutter-alpha.c: + Remove stray g_debug. + + * clutter/clutter-behaviour-rotate.c: + Register private class member. + + * clutter/clutter-behaviour.c: + * clutter/clutter-behaviour.h: + Add applied and removed signals. + + * Makefile.am: + * configure.ac: + * examples/Makefile.am: + * examples/README: + * examples/behave.c: + * examples/slider.c: + * examples/super-oh.c: + * examples/test-entry.c: + * examples/test-text.c: + * examples/test.c: + * tests/Makefile.am: + Remove examples, moving applicable code into tests. + 2007-06-11 Tomas Frydrych * clutter/clutter-alpha.c: diff --git a/Makefile.am b/Makefile.am index f0df847a3..8c742b0fc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS=clutter doc examples tests +SUBDIRS=clutter doc tests pcfiles = clutter-@CLUTTER_FLAVOUR@-@CLUTTER_MAJORMINOR@.pc diff --git a/clutter/clutter-alpha.c b/clutter/clutter-alpha.c index 392d2cdf9..7b8d34cbe 100644 --- a/clutter/clutter-alpha.c +++ b/clutter/clutter-alpha.c @@ -773,11 +773,6 @@ clutter_smoothstep_inc_func (ClutterAlpha *alpha, */ r = ((x >> 12) * (x >> 12) * 3 - (x >> 15) * (x >> 16) * (x >> 16)) >> 8; - g_debug ("Frame %d of %d, x %f, ret %f", - frame, n_frames, - CLUTTER_FIXED_TO_DOUBLE (x >> 8), - CLUTTER_FIXED_TO_DOUBLE (r)); - return CFX_INT (r * CLUTTER_ALPHA_MAX_ALPHA); } diff --git a/clutter/clutter-behaviour-rotate.c b/clutter/clutter-behaviour-rotate.c index 801932b5b..7e5606b7d 100644 --- a/clutter/clutter-behaviour-rotate.c +++ b/clutter/clutter-behaviour-rotate.c @@ -259,6 +259,8 @@ clutter_behaviour_rotate_class_init (ClutterBehaviourRotateClass *klass) CLUTTER_TYPE_ROTATE_DIRECTION, CLUTTER_ROTATE_CW, CLUTTER_PARAM_READWRITE)); + + g_type_class_add_private (klass, sizeof (ClutterBehaviourRotatePrivate)); } static void diff --git a/clutter/clutter-behaviour.c b/clutter/clutter-behaviour.c index 767d19ad8..f50373d2f 100644 --- a/clutter/clutter-behaviour.c +++ b/clutter/clutter-behaviour.c @@ -58,6 +58,7 @@ #include "clutter-behaviour.h" #include "clutter-debug.h" #include "clutter-private.h" +#include "clutter-marshal.h" /** * clutter_knot_copy: @@ -157,9 +158,12 @@ enum }; enum { - SIGNAL_LAST + APPLY, + REMOVE, + LAST_SIGNAL }; +static guint behave_signals[LAST_SIGNAL] = { 0 }; #define CLUTTER_BEHAVIOUR_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \ @@ -173,6 +177,7 @@ clutter_behaviour_finalize (GObject *object) clutter_behaviour_set_alpha (self, NULL); + /* FIXME: Should we also emit remove signals here ? */ g_slist_foreach (self->priv->actors, (GFunc) g_object_unref, NULL); g_slist_free (self->priv->actors); @@ -251,6 +256,43 @@ clutter_behaviour_class_init (ClutterBehaviourClass *klass) klass->alpha_notify = clutter_behaviour_alpha_notify_unimplemented; + /** + * ClutterBeavhour::apply: + * @behaviour: the #ClutterBehvaiour that received the signal + * @actor: the actor the behaviour was applied to. + * + * The ::apply signal is emitted each time the behaviour is applied + * to an actor. + * + */ + behave_signals[APPLY] = + g_signal_new ("apply", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (ClutterBehaviourClass, apply), + NULL, NULL, + clutter_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, + CLUTTER_TYPE_ACTOR); + /** + * ClutterBehaviour::remove: + * @behaviour: the #ClutterBehaviour that received the signal + * @actor: the actor added to the group + * + * The ::remove signal is emitted each time an actor has been removed + * from the group + * + */ + behave_signals[REMOVE] = + g_signal_new ("remove", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (ClutterBehaviourClass, remove), + NULL, NULL, + clutter_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, + CLUTTER_TYPE_ACTOR); + g_type_class_add_private (klass, sizeof (ClutterBehaviourPrivate)); } @@ -290,6 +332,9 @@ clutter_behaviour_apply (ClutterBehaviour *behave, } g_object_ref (actor); + + g_signal_emit (behave, behave_signals[APPLY], 0, actor); + behave->priv->actors = g_slist_prepend (behave->priv->actors, actor); } @@ -341,6 +386,9 @@ clutter_behaviour_remove (ClutterBehaviour *behave, } g_object_unref (actor); + + g_signal_emit (behave, behave_signals[REMOVE], 0, actor); + behave->priv->actors = g_slist_remove (behave->priv->actors, actor); } diff --git a/clutter/clutter-behaviour.h b/clutter/clutter-behaviour.h index e4c401c6c..889aaa21a 100644 --- a/clutter/clutter-behaviour.h +++ b/clutter/clutter-behaviour.h @@ -102,6 +102,11 @@ struct _ClutterBehaviourClass void (*alpha_notify) (ClutterBehaviour *behave, guint32 alpha_value); + void (*apply) (ClutterBehaviour *behave, + ClutterActor *actor); + void (*remove) (ClutterBehaviour *behave, + ClutterActor *actor); + /* padding, for future expansion */ void (*_clutter_behaviour1) (void); void (*_clutter_behaviour2) (void); diff --git a/configure.ac b/configure.ac index be344f1c6..43eee196d 100644 --- a/configure.ac +++ b/configure.ac @@ -285,7 +285,6 @@ AC_CONFIG_FILES([ clutter/cogl/Makefile clutter/cogl/gl/Makefile clutter/cogl/gles/Makefile - examples/Makefile tests/Makefile doc/Makefile doc/reference/Makefile diff --git a/examples/Makefile.am b/examples/Makefile.am deleted file mode 100644 index 0f31c7f4c..000000000 --- a/examples/Makefile.am +++ /dev/null @@ -1,43 +0,0 @@ -noinst_PROGRAMS = test super-oh behave test-text slider test-entry - -INCLUDES = -I$(top_srcdir)/ -LDADD = $(top_builddir)/clutter/libclutter-@CLUTTER_FLAVOUR@-@CLUTTER_MAJORMINOR@.la - -AM_CFLAGS = $(CLUTTER_CFLAGS) -AM_LDFLAGS = $(CLUTTER_LIBS) - -slider_SOURCES = slider.c - -test_SOURCES = test.c -test_CFLAGS = $(CLUTTER_CFLAGS) $(GCONF_CFLAGS) -test_LDFLAGS = \ - $(CLUTTER_LIBS) \ - $(GCONF_LIBS) - -super_oh_SOURCES = super-oh.c -super_oh_CFLAGS = $(CLUTTER_CFLAGS) $(GCONF_CFLAGS) -super_oh_LDFLAGS = \ - $(CLUTTER_LIBS) \ - $(GCONF_LIBS) - -behave_SOURCES = behave.c -behave_CFLAGS = $(CLUTTER_CFLAGS) $(GCONF_CFLAGS) -behave_LDFLAGS = \ - $(CLUTTER_LIBS) \ - $(GCONF_LIBS) - -test_text_SOURCES = test-text.c -test_text_CFLAGS = $(CLUTTER_CFLAGS) $(GCONF_CFLAGS) -test_text_LDFLAGS = \ - $(CLUTTER_LIBS) \ - $(GCONF_LIBS) - -test_entry_SOURCES = test-entry.c -test_entry_CFLAGS = $(CLUTTER_CFLAGS) $(GCONF_CFLAGS) -test_entry_LDFLAGS = \ - $(CLUTTER_LIBS) \ - $(GCONF_LIBS) - -EXTRA_DIST = redhand.png \ - clutter-logo-800x600.png \ - README diff --git a/examples/README b/examples/README deleted file mode 100644 index f62ead674..000000000 --- a/examples/README +++ /dev/null @@ -1,24 +0,0 @@ -examples/ -=== - -This directory contains a number of simple hacks come tests come -examples come clutter demos. - -There are: - - o test - - Lots of randomness. Scratchpad to test new features. - - o test.py - - Like above but more randomness in python. - - o super-oh - - Spinning OH logos. Click to dissapear. - - - -Also see http://svn.o-hand.com/repos/misc/trunk/opt for a simple -clutter based presentation program. diff --git a/examples/clutter-logo-800x600.png b/examples/clutter-logo-800x600.png deleted file mode 100644 index 7a81de9f4d4c9b42213e8d15243c81e05252df4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14722 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 E7hQgG-v9sr diff --git a/examples/slider.c b/examples/slider.c deleted file mode 100644 index 383f09a31..000000000 --- a/examples/slider.c +++ /dev/null @@ -1,196 +0,0 @@ -#include -#include - -#include - -typedef struct Tile -{ - ClutterActor *actor; - gint orig_pos; -} -Tile; - -static Tile *Tiles[4][4]; -static int TileW, TileH, BlankTileX, BlankTileY; -static ClutterEffectTemplate *Template; -static ClutterTimeline *EffectTimeline; - -ClutterActor* -make_tiles (GdkPixbuf *pixbuf) -{ - int x, y , w, h; - int i = 0, j = 0; - int pos = 0; - ClutterActor *group; - - group = clutter_group_new(); - - w = gdk_pixbuf_get_width (pixbuf); - h = gdk_pixbuf_get_height (pixbuf); - - TileW = w / 4; - TileH = h / 4; - - for (y = 0; y < h; y += TileH) - { - for (x = 0; x < w; x += TileW) - { - GdkPixbuf *subpixbuf; - Tile *tile; - - subpixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, FALSE, - 8, TileW, TileH); - - gdk_pixbuf_copy_area (pixbuf, x, y, TileW, TileH, - subpixbuf, 0, 0); - - tile = g_slice_new0 (Tile); - - if (pos != 15) - { - tile->actor = clutter_texture_new_from_pixbuf (subpixbuf); - clutter_container_add_actor (CLUTTER_CONTAINER (group), - tile->actor); - clutter_actor_set_position (tile->actor, x, y); - } - else - { - /* blank tile */ - tile->actor = NULL; - BlankTileX = i; - BlankTileY = j; - } - - g_object_unref (subpixbuf); - - tile->orig_pos = pos; - Tiles[j][i] = tile; - - pos++; i++; - } - i=0; j++; - } - - return group; -} - -static void -switch_blank_tile (int i, int j) -{ - Tile *tmp; - ClutterKnot knots[2]; - - knots[0].x = i * TileW; - knots[0].y = j * TileH; - - knots[1].x = BlankTileX * TileW; - knots[1].y = BlankTileY * TileH; - - EffectTimeline = clutter_effect_move (Template, - Tiles[j][i]->actor, - knots, - 2, - NULL, - NULL); - - /* Add a week pointer to returned timeline so we know whilst its - * playing and thus valid. - */ - g_object_add_weak_pointer (G_OBJECT(EffectTimeline), - (gpointer*)&EffectTimeline); - - tmp = Tiles[BlankTileY][BlankTileX]; - Tiles[BlankTileY][BlankTileX] = Tiles[j][i]; - Tiles[j][i] = tmp; - - BlankTileY = j; - BlankTileX = i; -} - -static void -key_press_event_cb (ClutterStage *stage, - ClutterKeyEvent *event, - gpointer user_data) -{ - Tile *tmp, *tmp2; - - if (clutter_key_event_symbol(event) == CLUTTER_q) - clutter_main_quit(); - - /* Do move if there is a move already happening */ - if (EffectTimeline != NULL) - return; - - switch (clutter_key_event_symbol(event)) - { - case CLUTTER_Up: - if (BlankTileY < 3) - switch_blank_tile (BlankTileX, BlankTileY+1); - break; - case CLUTTER_Down: - if (BlankTileY > 0) - switch_blank_tile (BlankTileX, BlankTileY-1); - break; - case CLUTTER_Left: - if (BlankTileX < 3) - switch_blank_tile (BlankTileX+1, BlankTileY); - break; - case CLUTTER_Right: - if (BlankTileX > 0) - switch_blank_tile (BlankTileX-1, BlankTileY); - break; - default: - break; - } -} - -int -main (int argc, char **argv) -{ - GError *error; - GdkPixbuf *pixbuf; - ClutterActor *stage, *group; - ClutterColor bgcolour; - - /* Initiate clutter */ - clutter_init (&argc, &argv); - - /* Setup the stage */ - stage = clutter_stage_get_default (); - g_object_set (stage, "fullscreen", TRUE, NULL); - - clutter_color_parse ("#000000", &bgcolour); - clutter_stage_set_color (CLUTTER_STAGE (stage), &bgcolour); - - /* Create Tiles */ - error = NULL; - pixbuf = gdk_pixbuf_new_from_file ("image.jpg", &error); - if (error) - { - g_warning ("Unable to load `image.jpg': %s", error->message); - g_error_free (error); - return EXIT_FAILURE; - } - - group = make_tiles (pixbuf); - - /* Add to stage and center */ - clutter_container_add_actor (CLUTTER_CONTAINER (stage), group); - clutter_actor_set_position (group, - (clutter_actor_get_width (stage) - clutter_actor_get_width (group)) / 2, - (clutter_actor_get_height (stage) - clutter_actor_get_height (group)) / 2); - - /* Link up event collection */ - g_signal_connect (stage, - "key-press-event", - G_CALLBACK(key_press_event_cb), - NULL); - - /* Template to use for slider animation */ - Template = clutter_effect_template_new (clutter_timeline_new (15, 60), - CLUTTER_ALPHA_RAMP_INC); - - clutter_actor_show_all (stage); - - clutter_main(); -} diff --git a/examples/test.c b/examples/test.c deleted file mode 100644 index 8e311c7a0..000000000 --- a/examples/test.c +++ /dev/null @@ -1,151 +0,0 @@ -#include - -#define PARA_TEXT "This is a paragraph of text to check both " \ - "word wrapping and basic clipping." - -void -rect_cb (ClutterTimeline *timeline, - gint frame_num, - gpointer data) -{ - ClutterActor *rect = CLUTTER_ACTOR(data); - gint x, y; - static gint direction = 1; - - x = clutter_actor_get_x (rect); - y = clutter_actor_get_y (rect); - - if (x > (CLUTTER_STAGE_WIDTH() - 200)) - direction = -1; - - if (x < 100) - direction = 1; - - x += direction; - - clutter_actor_set_position (rect, x, y); -} - - -void -text_cb (ClutterTimeline *timeline, - gint frame_num, - gpointer data) -{ - ClutterLabel *label; - gchar buf[32]; - gint opacity; - - label = CLUTTER_LABEL(data); - - opacity = frame_num/2; - - g_snprintf(buf, 32, "--> %i <--", frame_num); - - clutter_label_set_text (label, buf); - clutter_actor_set_size(CLUTTER_ACTOR(label), 150, 0); - clutter_label_set_ellipsize (label, PANGO_ELLIPSIZE_END); - - clutter_actor_set_opacity (CLUTTER_ACTOR(label), opacity); - - clutter_actor_rotate_z (CLUTTER_ACTOR(label), - frame_num, - clutter_actor_get_width (CLUTTER_ACTOR(label))/2, - clutter_actor_get_height (CLUTTER_ACTOR(label))/2); -} - -void -para_cb (ClutterTimeline *timeline, - gint frame_num, - gpointer data) -{ - - -} - -static void -key_press_cb (ClutterStage *stage, - ClutterKeyEvent *event, - gpointer data) -{ - g_print ("key-press-event\n"); -} - -static void -key_release_cb (ClutterStage *stage, - ClutterKeyEvent *event, - gpointer data) -{ - g_print ("key-release-event\n"); -} - -int -main (int argc, char *argv[]) -{ - ClutterActor *texture, *label, *rect, *para; - ClutterActor *stage; - ClutterTimeline *timeline; - ClutterColor rect_col = { 0xff, 0x0, 0x0, 0x99 }; - GdkPixbuf *pixbuf; - - clutter_init (&argc, &argv); - - stage = clutter_stage_get_default (); - g_signal_connect (stage, "key-press-event", - G_CALLBACK (key_press_cb), NULL); - g_signal_connect (stage, "key-release-event", - G_CALLBACK (key_release_cb), NULL); - g_signal_connect (stage, "button-press-event", - G_CALLBACK (clutter_main_quit), - NULL); - - pixbuf = gdk_pixbuf_new_from_file ("clutter-logo-800x600.png", NULL); - - if (!pixbuf) - g_error("pixbuf load failed"); - - texture = clutter_texture_new_from_pixbuf (pixbuf); - - label = clutter_label_new_with_text("Sans Bold 32", "hello"); - - clutter_actor_set_opacity (CLUTTER_ACTOR(label), 0x99); - clutter_actor_set_position (CLUTTER_ACTOR(label), 550, 100); - clutter_actor_set_size(label, 400, 0); - - - rect = clutter_rectangle_new_with_color(&rect_col); - clutter_actor_set_size(rect, 100, 100); - clutter_actor_set_position(rect, 100, 100); - - para = clutter_label_new_with_text ("Sans 24", PARA_TEXT); - clutter_actor_set_position(para, 10, 10); - clutter_actor_set_size(para, 200, 0); - - clutter_container_add (CLUTTER_CONTAINER (stage), - texture, label, - rect, para, - NULL); - - clutter_actor_set_size (CLUTTER_ACTOR (stage), 800, 600); - - clutter_actor_show_all (CLUTTER_ACTOR (stage)); - - timeline = clutter_timeline_new (360, 200); - g_object_set (timeline, "loop", TRUE, 0); - g_signal_connect (timeline, "new-frame", G_CALLBACK (text_cb), label); - clutter_timeline_start (timeline); - - timeline = clutter_timeline_new (1, 30); - g_object_set (timeline, "loop", TRUE, 0); - g_signal_connect (timeline, "new-frame", G_CALLBACK (rect_cb), rect); - clutter_timeline_start (timeline); - - timeline = clutter_timeline_new (1, 10); - g_object_set (timeline, "loop", TRUE, 0); - g_signal_connect (timeline, "new-frame", G_CALLBACK (para_cb), rect); - clutter_timeline_start (timeline); - - clutter_main(); - - return 0; -} diff --git a/tests/Makefile.am b/tests/Makefile.am index db15cee36..9cf9cce5f 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,4 +1,5 @@ -noinst_PROGRAMS = test-textures test-events test-offscreen test-scale +noinst_PROGRAMS = test-textures test-events test-offscreen test-scale \ + test-actors test-behave test-text test-entry INCLUDES = -I$(top_srcdir)/ LDADD = $(top_builddir)/clutter/libclutter-@CLUTTER_FLAVOUR@-@CLUTTER_MAJORMINOR@.la @@ -9,3 +10,7 @@ test_textures_SOURCES = test-textures.c test_events_SOURCES = test-events.c test_offscreen_SOURCES = test-offscreen.c test_scale_SOURCES = test-scale.c +test_actor_SOURCES = test-actors.c +test_behave_SOURCES = test-behave.c +test_text_SOURCES = test-text.c +test_entry_SOURCES = test-entry.c \ No newline at end of file diff --git a/examples/redhand.png b/tests/redhand.png similarity index 100% rename from examples/redhand.png rename to tests/redhand.png diff --git a/examples/super-oh.c b/tests/test-actors.c similarity index 100% rename from examples/super-oh.c rename to tests/test-actors.c diff --git a/examples/behave.c b/tests/test-behave.c similarity index 100% rename from examples/behave.c rename to tests/test-behave.c diff --git a/examples/test-entry.c b/tests/test-entry.c similarity index 100% rename from examples/test-entry.c rename to tests/test-entry.c diff --git a/examples/test-text.c b/tests/test-text.c similarity index 100% rename from examples/test-text.c rename to tests/test-text.c