From b4f12cfb83321abd30dbc23e36572c0dd5609cf7 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Wed, 11 Apr 2012 18:18:27 +0100 Subject: [PATCH] Deprecate ClutterAnimation, as well as clutter_actor_animate() ClutterPropertyTransition, and the implicit animation API based on ClutterTransition and ClutterAnimatable, are enough to replace this whole API. --- clutter/Makefile.am | 3 +- clutter/clutter-animatable.c | 1 + clutter/clutter-animatable.h | 2 +- clutter/clutter-animation.h | 165 ------------------- clutter/clutter-types.h | 66 ++++---- clutter/clutter.h | 1 - clutter/{ => deprecated}/clutter-animation.c | 0 clutter/deprecated/clutter-animation.h | 158 +++++++++++++++++- 8 files changed, 192 insertions(+), 204 deletions(-) delete mode 100644 clutter/clutter-animation.h rename clutter/{ => deprecated}/clutter-animation.c (100%) diff --git a/clutter/Makefile.am b/clutter/Makefile.am index 601e68dc5..75dad3726 100644 --- a/clutter/Makefile.am +++ b/clutter/Makefile.am @@ -55,7 +55,6 @@ source_h = \ $(srcdir)/clutter-align-constraint.h \ $(srcdir)/clutter-alpha.h \ $(srcdir)/clutter-animatable.h \ - $(srcdir)/clutter-animation.h \ $(srcdir)/clutter-backend.h \ $(srcdir)/clutter-bind-constraint.h \ $(srcdir)/clutter-binding-pool.h \ @@ -135,7 +134,6 @@ source_c = \ $(srcdir)/clutter-align-constraint.c \ $(srcdir)/clutter-alpha.c \ $(srcdir)/clutter-animatable.c \ - $(srcdir)/clutter-animation.c \ $(srcdir)/clutter-backend.c \ $(srcdir)/clutter-base-types.c \ $(srcdir)/clutter-bezier.c \ @@ -283,6 +281,7 @@ deprecated_h = \ # deprecated source code deprecated_c = \ $(srcdir)/deprecated/clutter-actor-deprecated.c \ + $(srcdir)/deprecated/clutter-animation.c \ $(srcdir)/deprecated/clutter-animator.c \ $(srcdir)/deprecated/clutter-behaviour.c \ $(srcdir)/deprecated/clutter-behaviour-depth.c \ diff --git a/clutter/clutter-animatable.c b/clutter/clutter-animatable.c index 81601d714..359995e44 100644 --- a/clutter/clutter-animatable.c +++ b/clutter/clutter-animatable.c @@ -55,6 +55,7 @@ #include "clutter-private.h" #include "deprecated/clutter-animatable.h" +#include "deprecated/clutter-animation.h" typedef ClutterAnimatableIface ClutterAnimatableInterface; G_DEFINE_INTERFACE (ClutterAnimatable, clutter_animatable, G_TYPE_OBJECT); diff --git a/clutter/clutter-animatable.h b/clutter/clutter-animatable.h index 945431b44..78a796fae 100644 --- a/clutter/clutter-animatable.h +++ b/clutter/clutter-animatable.h @@ -29,7 +29,7 @@ #error "Only can be included directly." #endif -#include +#include G_BEGIN_DECLS diff --git a/clutter/clutter-animation.h b/clutter/clutter-animation.h deleted file mode 100644 index d2811b483..000000000 --- a/clutter/clutter-animation.h +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Clutter. - * - * An OpenGL based 'interactive canvas' library. - * - * Copyright (C) 2008 Intel Corporation. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. If not, see . - * - * Author: - * Emmanuele Bassi - */ - -#if !defined(__CLUTTER_H_INSIDE__) && !defined(CLUTTER_COMPILATION) -#error "Only can be included directly." -#endif - -#ifndef __CLUTTER_ANIMATION_H__ -#define __CLUTTER_ANIMATION_H__ - -#include - -G_BEGIN_DECLS - -#define CLUTTER_TYPE_ANIMATION (clutter_animation_get_type ()) -#define CLUTTER_ANIMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_ANIMATION, ClutterAnimation)) -#define CLUTTER_IS_ANIMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_ANIMATION)) -#define CLUTTER_ANIMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_ANIMATION, ClutterAnimationClass)) -#define CLUTTER_IS_ANIMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_ANIMATION)) -#define CLUTTER_ANIMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_ANIMATION, ClutterAnimationClass)) - -typedef struct _ClutterAnimation ClutterAnimation; -typedef struct _ClutterAnimationPrivate ClutterAnimationPrivate; -typedef struct _ClutterAnimationClass ClutterAnimationClass; - -/** - * ClutterAnimation: - * - * The #ClutterAnimation structure contains only private data and should - * be accessed using the provided functions. - * - * Since: 1.0 - */ -struct _ClutterAnimation -{ - /*< private >*/ - GObject parent_instance; - - ClutterAnimationPrivate *priv; -}; - -/** - * ClutterAnimationClass: - * @started: class handler for the #ClutterAnimation::started signal - * @completed: class handler for the #ClutterAnimation::completed signal - * - * The #ClutterAnimationClass structure contains only private data and - * should be accessed using the provided functions. - * - * Since: 1.0 - */ -struct _ClutterAnimationClass -{ - /*< private >*/ - GObjectClass parent_class; - - /*< public >*/ - void (* started) (ClutterAnimation *animation); - void (* completed) (ClutterAnimation *animation); - - /*< private >*/ - /* padding for future expansion */ - void (*_clutter_reserved1) (void); - void (*_clutter_reserved2) (void); - void (*_clutter_reserved3) (void); - void (*_clutter_reserved4) (void); - void (*_clutter_reserved5) (void); - void (*_clutter_reserved6) (void); - void (*_clutter_reserved7) (void); - void (*_clutter_reserved8) (void); -}; - -GType clutter_animation_get_type (void) G_GNUC_CONST; - -ClutterAnimation * clutter_animation_new (void); - -void clutter_animation_set_object (ClutterAnimation *animation, - GObject *object); -GObject * clutter_animation_get_object (ClutterAnimation *animation); -void clutter_animation_set_mode (ClutterAnimation *animation, - gulong mode); -gulong clutter_animation_get_mode (ClutterAnimation *animation); -void clutter_animation_set_duration (ClutterAnimation *animation, - guint msecs); -guint clutter_animation_get_duration (ClutterAnimation *animation); -void clutter_animation_set_loop (ClutterAnimation *animation, - gboolean loop); -gboolean clutter_animation_get_loop (ClutterAnimation *animation); -void clutter_animation_set_timeline (ClutterAnimation *animation, - ClutterTimeline *timeline); -ClutterTimeline * clutter_animation_get_timeline (ClutterAnimation *animation); - -ClutterAnimation * clutter_animation_bind (ClutterAnimation *animation, - const gchar *property_name, - const GValue *final); -ClutterAnimation * clutter_animation_bind_interval (ClutterAnimation *animation, - const gchar *property_name, - ClutterInterval *interval); -gboolean clutter_animation_has_property (ClutterAnimation *animation, - const gchar *property_name); -ClutterAnimation * clutter_animation_update (ClutterAnimation *animation, - const gchar *property_name, - const GValue *final); -void clutter_animation_update_interval (ClutterAnimation *animation, - const gchar *property_name, - ClutterInterval *interval); -void clutter_animation_unbind_property (ClutterAnimation *animation, - const gchar *property_name); -ClutterInterval *clutter_animation_get_interval (ClutterAnimation *animation, - const gchar *property_name); -void clutter_animation_completed (ClutterAnimation *animation); - -/* - * ClutterActor API - */ - -ClutterAnimation * clutter_actor_animate (ClutterActor *actor, - gulong mode, - guint duration, - const gchar *first_property_name, - ...) G_GNUC_NULL_TERMINATED; -ClutterAnimation * clutter_actor_animate_with_timeline (ClutterActor *actor, - gulong mode, - ClutterTimeline *timeline, - const gchar *first_property_name, - ...) G_GNUC_NULL_TERMINATED; -ClutterAnimation * clutter_actor_animatev (ClutterActor *actor, - gulong mode, - guint duration, - gint n_properties, - const gchar * const properties[], - const GValue *values); -ClutterAnimation * clutter_actor_animate_with_timelinev (ClutterActor *actor, - gulong mode, - ClutterTimeline *timeline, - gint n_properties, - const gchar * const properties[], - const GValue *values); -ClutterAnimation * clutter_actor_get_animation (ClutterActor *actor); -void clutter_actor_detach_animation (ClutterActor *actor); - -G_END_DECLS - -#endif /* __CLUTTER_ANIMATION_H__ */ diff --git a/clutter/clutter-types.h b/clutter/clutter-types.h index 00c89d920..08c828886 100644 --- a/clutter/clutter-types.h +++ b/clutter/clutter-types.h @@ -47,21 +47,18 @@ G_BEGIN_DECLS #define CLUTTER_TYPE_SIZE (clutter_size_get_type ()) #define CLUTTER_TYPE_RECT (clutter_rect_get_type ()) -typedef struct _ClutterActor ClutterActor; +typedef struct _ClutterActor ClutterActor; -typedef struct _ClutterStage ClutterStage; -typedef struct _ClutterContainer ClutterContainer; /* dummy */ -typedef struct _ClutterChildMeta ClutterChildMeta; -typedef struct _ClutterLayoutMeta ClutterLayoutMeta; -typedef struct _ClutterActorMeta ClutterActorMeta; -typedef struct _ClutterLayoutManager ClutterLayoutManager; -typedef struct _ClutterActorIter ClutterActorIter; -typedef struct _ClutterPaintNode ClutterPaintNode; -typedef struct _ClutterContent ClutterContent; /* dummy */ +typedef struct _ClutterStage ClutterStage; +typedef struct _ClutterContainer ClutterContainer; /* dummy */ +typedef struct _ClutterChildMeta ClutterChildMeta; +typedef struct _ClutterLayoutMeta ClutterLayoutMeta; +typedef struct _ClutterActorMeta ClutterActorMeta; +typedef struct _ClutterLayoutManager ClutterLayoutManager; +typedef struct _ClutterActorIter ClutterActorIter; +typedef struct _ClutterPaintNode ClutterPaintNode; +typedef struct _ClutterContent ClutterContent; /* dummy */ -typedef struct _ClutterAlpha ClutterAlpha; -typedef struct _ClutterAnimator ClutterAnimator; -typedef struct _ClutterState ClutterState; typedef struct _ClutterInterval ClutterInterval; typedef struct _ClutterAnimatable ClutterAnimatable; /* dummy */ typedef struct _ClutterTimeline ClutterTimeline; @@ -70,28 +67,35 @@ typedef struct _ClutterPropertyTransition ClutterPropertyTransition; typedef struct _ClutterKeyframeTransition ClutterKeyframeTransition; typedef struct _ClutterTransitionGroup ClutterTransitionGroup; -typedef struct _ClutterAction ClutterAction; -typedef struct _ClutterConstraint ClutterConstraint; -typedef struct _ClutterEffect ClutterEffect; +typedef struct _ClutterAction ClutterAction; +typedef struct _ClutterConstraint ClutterConstraint; +typedef struct _ClutterEffect ClutterEffect; -typedef struct _ClutterPath ClutterPath; +typedef struct _ClutterPath ClutterPath; -typedef struct _ClutterActorBox ClutterActorBox; -typedef struct _ClutterColor ClutterColor; -typedef struct _ClutterGeometry ClutterGeometry; -typedef struct _ClutterKnot ClutterKnot; -typedef struct _ClutterMargin ClutterMargin; -typedef struct _ClutterPerspective ClutterPerspective; -typedef struct _ClutterPoint ClutterPoint; -typedef struct _ClutterRect ClutterRect; -typedef struct _ClutterSize ClutterSize; -typedef struct _ClutterVertex ClutterVertex; +typedef struct _ClutterActorBox ClutterActorBox; +typedef struct _ClutterColor ClutterColor; +typedef struct _ClutterGeometry ClutterGeometry; +typedef struct _ClutterKnot ClutterKnot; +typedef struct _ClutterMargin ClutterMargin; +typedef struct _ClutterPerspective ClutterPerspective; +typedef struct _ClutterPoint ClutterPoint; +typedef struct _ClutterRect ClutterRect; +typedef struct _ClutterSize ClutterSize; +typedef struct _ClutterVertex ClutterVertex; -typedef struct _ClutterFog ClutterFog; /* deprecated */ -typedef struct _ClutterBehaviour ClutterBehaviour; /* deprecated */ -typedef struct _ClutterShader ClutterShader; /* deprecated */ +typedef struct _ClutterAlpha ClutterAlpha; +typedef struct _ClutterAnimation ClutterAnimation; +typedef struct _ClutterAnimator ClutterAnimator; +typedef struct _ClutterState ClutterState; +typedef struct _ClutterBehaviour ClutterBehaviour; +typedef struct _ClutterShader ClutterShader; -typedef union _ClutterEvent ClutterEvent; +typedef union _ClutterEvent ClutterEvent; + +typedef struct _ClutterFog ClutterFog; /* deprecated */ +typedef struct _ClutterBehaviour ClutterBehaviour; /* deprecated */ +typedef struct _ClutterShader ClutterShader; /* deprecated */ /** * ClutterPaintVolume: diff --git a/clutter/clutter.h b/clutter/clutter.h index a5e2a6108..d96713fe7 100644 --- a/clutter/clutter.h +++ b/clutter/clutter.h @@ -37,7 +37,6 @@ #include "clutter-align-constraint.h" #include "clutter-alpha.h" #include "clutter-animatable.h" -#include "clutter-animation.h" #include "clutter-backend.h" #include "clutter-bind-constraint.h" #include "clutter-binding-pool.h" diff --git a/clutter/clutter-animation.c b/clutter/deprecated/clutter-animation.c similarity index 100% rename from clutter/clutter-animation.c rename to clutter/deprecated/clutter-animation.c diff --git a/clutter/deprecated/clutter-animation.h b/clutter/deprecated/clutter-animation.h index 50c14bf6f..fec7e6e28 100644 --- a/clutter/deprecated/clutter-animation.h +++ b/clutter/deprecated/clutter-animation.h @@ -26,20 +26,165 @@ #error "Only can be included directly." #endif -#ifndef __CLUTTER_ANIMATION_DEPRECATED_H__ -#define __CLUTTER_ANIMATION_DEPRECATED_H__ +#ifndef __CLUTTER_ANIMATION_H__ +#define __CLUTTER_ANIMATION_H__ -#include +#include G_BEGIN_DECLS +#define CLUTTER_TYPE_ANIMATION (clutter_animation_get_type ()) +#define CLUTTER_ANIMATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_ANIMATION, ClutterAnimation)) +#define CLUTTER_IS_ANIMATION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_ANIMATION)) +#define CLUTTER_ANIMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CLUTTER_TYPE_ANIMATION, ClutterAnimationClass)) +#define CLUTTER_IS_ANIMATION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CLUTTER_TYPE_ANIMATION)) +#define CLUTTER_ANIMATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CLUTTER_TYPE_ANIMATION, ClutterAnimationClass)) + +typedef struct _ClutterAnimation ClutterAnimation; +typedef struct _ClutterAnimationPrivate ClutterAnimationPrivate; +typedef struct _ClutterAnimationClass ClutterAnimationClass; + +/** + * ClutterAnimation: + * + * The #ClutterAnimation structure contains only private data and should + * be accessed using the provided functions. + * + * Since: 1.0 + */ +struct _ClutterAnimation +{ + /*< private >*/ + GObject parent_instance; + + ClutterAnimationPrivate *priv; +}; + +/** + * ClutterAnimationClass: + * @started: class handler for the #ClutterAnimation::started signal + * @completed: class handler for the #ClutterAnimation::completed signal + * + * The #ClutterAnimationClass structure contains only private data and + * should be accessed using the provided functions. + * + * Since: 1.0 + */ +struct _ClutterAnimationClass +{ + /*< private >*/ + GObjectClass parent_class; + + /*< public >*/ + void (* started) (ClutterAnimation *animation); + void (* completed) (ClutterAnimation *animation); + + /*< private >*/ + /* padding for future expansion */ + void (*_clutter_reserved1) (void); + void (*_clutter_reserved2) (void); + void (*_clutter_reserved3) (void); + void (*_clutter_reserved4) (void); + void (*_clutter_reserved5) (void); + void (*_clutter_reserved6) (void); + void (*_clutter_reserved7) (void); + void (*_clutter_reserved8) (void); +}; + +CLUTTER_DEPRECATED_IN_1_12 +GType clutter_animation_get_type (void) G_GNUC_CONST; + +CLUTTER_DEPRECATED_IN_1_12_FOR(clutter_property_transition_new) +ClutterAnimation * clutter_animation_new (void); + +CLUTTER_DEPRECATED_IN_1_12_FOR(clutter_transition_set_animatable) +void clutter_animation_set_object (ClutterAnimation *animation, + GObject *object); +CLUTTER_DEPRECATED_IN_1_12_FOR(clutter_transition_get_animatable) +GObject * clutter_animation_get_object (ClutterAnimation *animation); +CLUTTER_DEPRECATED_IN_1_12_FOR(clutter_timeline_set_progress_mode) +void clutter_animation_set_mode (ClutterAnimation *animation, + gulong mode); +CLUTTER_DEPRECATED_IN_1_12_FOR(clutter_timeline_get_progress_mode) +gulong clutter_animation_get_mode (ClutterAnimation *animation); +CLUTTER_DEPRECATED_IN_1_12_FOR(clutter_timeline_set_duration) +void clutter_animation_set_duration (ClutterAnimation *animation, + guint msecs); +CLUTTER_DEPRECATED_IN_1_12_FOR(clutter_timeline_get_duration) +guint clutter_animation_get_duration (ClutterAnimation *animation); +CLUTTER_DEPRECATED_IN_1_12_FOR(clutter_timeline_set_repeat_count) +void clutter_animation_set_loop (ClutterAnimation *animation, + gboolean loop); +CLUTTER_DEPRECATED_IN_1_12_FOR(clutter_timeline_get_repeat_count) +gboolean clutter_animation_get_loop (ClutterAnimation *animation); +CLUTTER_DEPRECATED_IN_1_12 +void clutter_animation_set_timeline (ClutterAnimation *animation, + ClutterTimeline *timeline); +CLUTTER_DEPRECATED_IN_1_12 +ClutterTimeline * clutter_animation_get_timeline (ClutterAnimation *animation); CLUTTER_DEPRECATED_IN_1_10_FOR(clutter_animation_set_timeline) void clutter_animation_set_alpha (ClutterAnimation *animation, ClutterAlpha *alpha); - CLUTTER_DEPRECATED_IN_1_10_FOR(clutter_animation_get_timeline) ClutterAlpha * clutter_animation_get_alpha (ClutterAnimation *animation); +CLUTTER_DEPRECATED_IN_1_12 +ClutterAnimation * clutter_animation_bind (ClutterAnimation *animation, + const gchar *property_name, + const GValue *final); +CLUTTER_DEPRECATED_IN_1_12_FOR(clutter_transition_set_interval) +ClutterAnimation * clutter_animation_bind_interval (ClutterAnimation *animation, + const gchar *property_name, + ClutterInterval *interval); +CLUTTER_DEPRECATED_IN_1_12 +gboolean clutter_animation_has_property (ClutterAnimation *animation, + const gchar *property_name); +CLUTTER_DEPRECATED_IN_1_12 +ClutterAnimation * clutter_animation_update (ClutterAnimation *animation, + const gchar *property_name, + const GValue *final); +CLUTTER_DEPRECATED_IN_1_12 +void clutter_animation_update_interval (ClutterAnimation *animation, + const gchar *property_name, + ClutterInterval *interval); +CLUTTER_DEPRECATED_IN_1_12 +void clutter_animation_unbind_property (ClutterAnimation *animation, + const gchar *property_name); +CLUTTER_DEPRECATED_IN_1_12 +ClutterInterval * clutter_animation_get_interval (ClutterAnimation *animation, + const gchar *property_name); +CLUTTER_DEPRECATED_IN_1_12 +void clutter_animation_completed (ClutterAnimation *animation); +/* + * ClutterActor API + */ + +CLUTTER_DEPRECATED_IN_1_12 +ClutterAnimation * clutter_actor_animate (ClutterActor *actor, + gulong mode, + guint duration, + const gchar *first_property_name, + ...) G_GNUC_NULL_TERMINATED; +CLUTTER_DEPRECATED_IN_1_12 +ClutterAnimation * clutter_actor_animate_with_timeline (ClutterActor *actor, + gulong mode, + ClutterTimeline *timeline, + const gchar *first_property_name, + ...) G_GNUC_NULL_TERMINATED; +CLUTTER_DEPRECATED_IN_1_12 +ClutterAnimation * clutter_actor_animatev (ClutterActor *actor, + gulong mode, + guint duration, + gint n_properties, + const gchar * const properties[], + const GValue *values); +CLUTTER_DEPRECATED_IN_1_12 +ClutterAnimation * clutter_actor_animate_with_timelinev (ClutterActor *actor, + gulong mode, + ClutterTimeline *timeline, + gint n_properties, + const gchar * const properties[], + const GValue *values); CLUTTER_DEPRECATED_IN_1_10_FOR(clutter_actor_animate_with_timeline) ClutterAnimation * clutter_actor_animate_with_alpha (ClutterActor *actor, ClutterAlpha *alpha, @@ -52,6 +197,11 @@ ClutterAnimation * clutter_actor_animate_with_alphav (ClutterActor const gchar * const properties[], const GValue *values); +CLUTTER_DEPRECATED_IN_1_12 +ClutterAnimation * clutter_actor_get_animation (ClutterActor *actor); +CLUTTER_DEPRECATED_IN_1_12 +void clutter_actor_detach_animation (ClutterActor *actor); + G_END_DECLS #endif /* __CLUTTER_ANIMATION_DEPRECATED_H__ */