ClutterAnimatable

ClutterAnimatable — Interface for animatable classes

Types and Values

Object Hierarchy

    GInterface
    ╰── ClutterAnimatable

Prerequisites

ClutterAnimatable requires GObject.

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

Functions

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);

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.

Parameters

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

Parameters

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

Parameters

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

Parameters

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().

Parameters

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

Types and Values

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.

Members

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