### Interface

# Clutter Animatable

#### Description [src]

    interface Clutter.Animatable : GObject.Object

Interface for animatable classes

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

Each `ClutterAnimatable` should implement the `Clutter.AnimatableInterface.interpolate_value` 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.

#### Prerequisite

In order to implement Animatable, your type must inherit from`GObject`.

#### Implementations

- ClutterActor
- ClutterClone
- ClutterScrollActor
- ClutterStage
- ClutterText

#### Instance methods

###### clutter_animatable_find_property

Finds the `GParamSpec` for `property_name`.

###### clutter_animatable_get_actor

Get animated actor.

###### clutter_animatable_get_initial_state

Retrieves the current state of `property_name` and sets `value` with it.

###### clutter_animatable_interpolate_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`.

###### clutter_animatable_set_final_state

Sets the current state of `property_name` to `value`.

#### Interface structure

    struct ClutterAnimatableInterface {
      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
      );
      ClutterActor* (* get_actor) (
        ClutterAnimatable* animatable
      );

    }

No description available.

###### Interface members

`find_property` |
    GParamSpec* (* find_property) (
        ClutterAnimatable* animatable,
        const gchar* property_name
      )
| Virtual function for retrieving the `GParamSpec` of an animatable property.
`get_initial_state` |
    void (* get_initial_state) (
        ClutterAnimatable* animatable,
        const gchar* property_name,
        GValue* value
      )
| Virtual function for retrieving the initial state of an animatable property.
`set_final_state` |
    void (* set_final_state) (
        ClutterAnimatable* animatable,
        const gchar* property_name,
        const GValue* value
      )
| Virtual function for setting the state of an animatable property.
`interpolate_value` |
    gboolean (* interpolate_value) (
        ClutterAnimatable* animatable,
        const gchar* property_name,
        ClutterInterval* interval,
        gdouble progress,
        GValue* value
      )
| Virtual function for interpolating the progress of a property.
`get_actor` |
    ClutterActor* (* get_actor) (
        ClutterAnimatable* animatable
      )
| Virtual function for getting associated actor.

#### Virtual methods

###### Clutter.Animatable.find_property

Finds the `GParamSpec` for `property_name`.

###### Clutter.Animatable.get_actor

Get animated actor.

###### Clutter.Animatable.get_initial_state

Retrieves the current state of `property_name` and sets `value` with it.

###### Clutter.Animatable.interpolate_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`.

###### Clutter.Animatable.set_final_state

Sets the current state of `property_name` to `value`.