[libchamplain] Port animations to the new API
- From: Pierre-Luc Beaudoin <plbeaudoin src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [libchamplain] Port animations to the new API
- Date: Tue, 4 Aug 2009 02:17:39 +0000 (UTC)
commit 5630df9e1b66b0284cda71793a65584ae24300e7
Author: Pierre-Luc Beaudoin <pierre-luc pierlux com>
Date: Sat May 16 18:31:10 2009 -0400
Port animations to the new API
champlain/champlain-tile.c | 34 ++++++++++++++--------------------
champlain/champlain-view.c | 2 +-
2 files changed, 15 insertions(+), 21 deletions(-)
---
diff --git a/champlain/champlain-tile.c b/champlain/champlain-tile.c
index 1497c10..5bab7c5 100644
--- a/champlain/champlain-tile.c
+++ b/champlain/champlain-tile.c
@@ -826,31 +826,26 @@ champlain_tile_set_etag (ChamplainTile *self,
typedef struct {
ChamplainTile *tile;
- //ClutterEffectTemplate *etemplate;
- ClutterTimeline *timeline;
ClutterActor *old_actor;
} AnimationContext;
-/*
+
static void
-fade_in_completed (ClutterTimeline *timeline,
+fade_in_completed (ClutterAnimation *animation,
gpointer data)
{
AnimationContext* ctx = (AnimationContext*) data;
ChamplainTilePrivate *priv = GET_PRIVATE (ctx->tile);
if (ctx->old_actor != NULL)
- {
- g_object_unref (ctx->old_actor);
- clutter_container_remove (CLUTTER_CONTAINER (priv->actor), ctx->old_actor, NULL);
- }
+ {
+ g_object_unref (ctx->old_actor);
+ clutter_container_remove (CLUTTER_CONTAINER (priv->actor), ctx->old_actor, NULL);
+ }
g_object_unref (ctx->tile);
- g_object_unref (ctx->timeline);
- //g_object_unref (ctx->etemplate);
g_free (ctx);
-
}
-*/
+
/**
* champlain_tile_set_content:
@@ -884,21 +879,20 @@ champlain_tile_set_content (ChamplainTile *self,
clutter_container_add (CLUTTER_CONTAINER (priv->actor), actor, NULL);
- /* fixme: etemplate are leaked here
+ /* fixme: etemplate are leaked here */
if (fade_in == TRUE)
{
+ ClutterAnimation *animation;
+ clutter_actor_set_opacity (actor, 0);
+
AnimationContext *ctx = g_new0 (AnimationContext, 1);
ctx->tile = g_object_ref (self);
- ctx->timeline = clutter_timeline_new_for_duration (750);
- ctx->etemplate = clutter_effect_template_new (ctx->timeline, CLUTTER_ALPHA_SINE_INC);
+ animation = clutter_actor_animate (actor, CLUTTER_EASE_IN_CUBIC,
+ 500, "opacity", 255, NULL);
ctx->old_actor = old_actor;
- g_signal_connect (ctx->timeline, "completed", G_CALLBACK (fade_in_completed), ctx);
-
- clutter_actor_set_opacity (actor, 0);
- clutter_effect_fade (ctx->etemplate, actor, 255, NULL, NULL);
+ g_signal_connect (animation, "completed", G_CALLBACK (fade_in_completed), ctx);
}
- */
priv->content_actor = g_object_ref (actor);
g_object_notify (G_OBJECT (self), "content");
diff --git a/champlain/champlain-view.c b/champlain/champlain-view.c
index fddc760..1149ad2 100644
--- a/champlain/champlain-view.c
+++ b/champlain/champlain-view.c
@@ -1374,7 +1374,7 @@ champlain_view_go_to (ChamplainView *view,
*/
duration = 500 * priv->zoom_level / 2.0;
ctx->timeline = clutter_timeline_new_for_duration (duration);
- ctx->alpha = clutter_alpha_new_full (ctx->timeline, CLUTTER_EASE_OUT_SINE);
+ ctx->alpha = clutter_alpha_new_full (ctx->timeline, CLUTTER_EASE_IN_OUT_CIRC);
g_signal_connect (ctx->timeline, "new-frame", G_CALLBACK (timeline_new_frame),
ctx);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]