ClutterAnimatable

ClutterAnimatable — Interface for animatable classes

Synopsis

                    ClutterAnimatable;
struct              ClutterAnimatableIface;
gboolean            clutter_animatable_animate_property (ClutterAnimatable *animatable,
                                                         ClutterAnimation *animation,
                                                         const gchar *property_name,
                                                         const GValue *initial_value,
                                                         const GValue *final_value,
                                                         gdouble progress,
                                                         GValue *value);
GParamSpec *        clutter_animatable_find_property    (ClutterAnimatable *animatable,
                                                         const gchar *property_name);
void                clutter_animatable_get_initial_state
                                                        (ClutterAnimatable *animatable,
                                                         const gchar *property_name,
                                                         GValue *value);
void                clutter_animatable_set_final_state  (ClutterAnimatable *animatable,
                                                         const gchar *property_name,
                                                         const GValue *value);
gboolean            clutter_animatable_interpolate_value
                                                        (ClutterAnimatable *animatable,
                                                         const gchar *property_name,
                                                         ClutterInterval *interval,
                                                         gdouble progress,
                                                         GValue *value);

Object Hierarchy

  GInterface
   +----ClutterAnimatable

Prerequisites

ClutterAnimatable requires GObject.

Known Implementations

ClutterAnimatable is implemented by ClutterActor, ClutterBox, ClutterCairoTexture, ClutterClone, ClutterGroup, ClutterRectangle, ClutterScrollActor, ClutterStage, ClutterText and ClutterTexture.

Description

ClutterAnimatable is an interface that allows a GObject class to control how a ClutterAnimation will animate a property.

Each ClutterAnimatable should implement the ClutterAnimatableIface.interpolate_property() virtual function of the interface to compute the animation state between two values of an interval depending on a progress factor, expressed as a floating point value.

If a ClutterAnimatable is animated by a ClutterAnimation instance, the ClutterAnimation will call clutter_animatable_interpolate_property() passing the name of the currently animated property; the values interval; and the progress factor. The ClutterAnimatable implementation should return the computed value for the animated property.

ClutterAnimatable is available since Clutter 1.0

Details

ClutterAnimatable

typedef struct _ClutterAnimatable ClutterAnimatable;

ClutterAnimatable is an opaque structure whose members cannot be directly accessed

Since 1.0


struct ClutterAnimatableIface

struct ClutterAnimatableIface {
  gboolean    (* animate_property)  (ClutterAnimatable *animatable,
                                     ClutterAnimation  *animation,
                                     const gchar       *property_name,
                                     const GValue      *initial_value,
                                     const GValue      *final_value,
                                     gdouble            progress,
                                     GValue            *value);
  GParamSpec *(* find_property)     (ClutterAnimatable *animatable,
                                     const gchar       *property_name);
  void        (* get_initial_state) (ClutterAnimatable *animatable,
                                     const gchar       *property_name,
                                     GValue            *value);
  void        (* set_final_state)   (ClutterAnimatable *animatable,
                                     const gchar       *property_name,
                                     const GValue      *value);
  gboolean    (* interpolate_value) (ClutterAnimatable *animatable,
                                     const gchar       *property_name,
                                     ClutterInterval   *interval,
                                     gdouble            progress,
                                     GValue            *value);
};

Base interface for GObjects that can be animated by a a ClutterAnimation.

animate_property ()

virtual function for custom interpolation of a property. This virtual function is deprecated

find_property ()

virtual function for retrieving the GParamSpec of an animatable property

get_initial_state ()

virtual function for retrieving the initial state of an animatable property

set_final_state ()

virtual function for setting the state of an animatable property

interpolate_value ()

virtual function for interpolating the progress of a property

Since 1.0


clutter_animatable_animate_property ()

gboolean            clutter_animatable_animate_property (ClutterAnimatable *animatable,
                                                         ClutterAnimation *animation,
                                                         const gchar *property_name,
                                                         const GValue *initial_value,
                                                         const GValue *final_value,
                                                         gdouble progress,
                                                         GValue *value);

Warning

clutter_animatable_animate_property has been deprecated since version 1.8 and should not be used in newly-written code. Use clutter_animatable_interpolate_value() instead

Calls the animate_property() virtual function for animatable.

The initial_value and final_value GValues must contain the same type; value must have been initialized to the same type of initial_value and final_value.

All implementation of the ClutterAnimatable interface must implement this function.

animatable :

a ClutterAnimatable

animation :

a ClutterAnimation

property_name :

the name of the animated property

initial_value :

the initial value of the animation interval

final_value :

the final value of the animation interval

progress :

the progress factor

value :

return location for the animation value

Returns :

TRUE if the value has been validated and can be applied to the ClutterAnimatable, and FALSE otherwise

Since 1.0


clutter_animatable_find_property ()

GParamSpec *        clutter_animatable_find_property    (ClutterAnimatable *animatable,
                                                         const gchar *property_name);

Finds the GParamSpec for property_name

animatable :

a ClutterAnimatable

property_name :

the name of the animatable property to find

Returns :

The GParamSpec for the given property or NULL. [transfer none]

Since 1.4


clutter_animatable_get_initial_state ()

void                clutter_animatable_get_initial_state
                                                        (ClutterAnimatable *animatable,
                                                         const gchar *property_name,
                                                         GValue *value);

Retrieves the current state of property_name and sets value with it

animatable :

a ClutterAnimatable

property_name :

the name of the animatable property to retrieve

value :

a GValue initialized to the type of the property to retrieve

Since 1.4


clutter_animatable_set_final_state ()

void                clutter_animatable_set_final_state  (ClutterAnimatable *animatable,
                                                         const gchar *property_name,
                                                         const GValue *value);

Sets the current state of property_name to value

animatable :

a ClutterAnimatable

property_name :

the name of the animatable property to set

value :

the value of the animatable property to set

Since 1.4


clutter_animatable_interpolate_value ()

gboolean            clutter_animatable_interpolate_value
                                                        (ClutterAnimatable *animatable,
                                                         const gchar *property_name,
                                                         ClutterInterval *interval,
                                                         gdouble progress,
                                                         GValue *value);

Asks a ClutterAnimatable implementation to interpolate a a named property between the initial and final values of a ClutterInterval, using progress as the interpolation value, and store the result inside value.

This function should be used for every property animation involving ClutterAnimatables.

This function replaces clutter_animatable_animate_property().

animatable :

a ClutterAnimatable

property_name :

the name of the property to interpolate

interval :

a ClutterInterval with the animation range

progress :

the progress to use to interpolate between the initial and final values of the interval

value :

return location for an initialized GValue using the same type of the interval. [out]

Returns :

TRUE if the interpolation was successful, and FALSE otherwise

Since 1.8