## ClutterTransition

ClutterTransition — Transition between two values

## Synopsis

                        ClutterTransition;
    struct              ClutterTransitionClass;
    void                clutter_transition_set_from         (ClutterTransition *transition,
                                                             GType value_type,
                                                             ...);
    void                clutter_transition_set_from_value   (ClutterTransition *transition,
                                                             const GValue *value);
    void                clutter_transition_set_to           (ClutterTransition *transition,
                                                             GType value_type,
                                                             ...);
    void                clutter_transition_set_to_value     (ClutterTransition *transition,
                                                             const GValue *value);
    void                clutter_transition_set_interval     (ClutterTransition *transition,
                                                             ClutterInterval *interval);
    ClutterInterval *   clutter_transition_get_interval     (ClutterTransition *transition);
    void                clutter_transition_set_animatable   (ClutterTransition *transition,
                                                             ClutterAnimatable *animatable);
    ClutterAnimatable * clutter_transition_get_animatable   (ClutterTransition *transition);
    void                clutter_transition_set_remove_on_complete
                                                            (ClutterTransition *transition,
                                                             gboolean remove_complete);
    gboolean            clutter_transition_get_remove_on_complete
                                                            (ClutterTransition *transition);

## Object Hierarchy

      GObject
       +----ClutterTimeline
             +----ClutterTransition
                   +----ClutterPropertyTransition
                   +----ClutterTransitionGroup

## Implemented Interfaces

ClutterTransition implements ClutterScriptable.

## Properties

      "animatable"               ClutterAnimatable*    : Read / Write
      "interval"                 ClutterInterval*      : Read / Write
      "remove-on-complete"       gboolean              : Read / Write

## Description

ClutterTransition is a subclass of ClutterTimeline that computes the interpolation between two values, stored by a ClutterInterval.

## Details

### ClutterTransition

    typedef struct _ClutterTransition ClutterTransition;

The ClutterTransition structure contains private data and should only be accessed using the provided API.

Since 1.10

### struct ClutterTransitionClass

    struct ClutterTransitionClass {
      void (* attached) (ClutterTransition *transition,
                         ClutterAnimatable *animatable);
      void (* detached) (ClutterTransition *transition,
                         ClutterAnimatable *animatable);

      void (* compute_value) (ClutterTransition *transition,
                              ClutterAnimatable *animatable,
                              ClutterInterval   *interval,
                              gdouble            progress);
    };

The ClutterTransitionClass structure contains private data.

`attached` () | virtual function; called when a transition is attached to a ClutterAnimatable instance
`detached` () | virtual function; called when a transition is detached from a ClutterAnimatable instance
`compute_value` () | virtual function; called each frame to compute and apply the interpolation of the interval

Since 1.10

### clutter_transition_set_from ()

    void                clutter_transition_set_from         (ClutterTransition *transition,
                                                             GType value_type,
                                                             ...);

Sets the initial value of the transition.

This is a convenience function that will either create the ClutterInterval used by `transition`, or will update it if the "interval" is already set.

If `transition` already has a "interval" set, then `value` must hold the same type, or a transformable type, as the interval's "value-type" property.

This is a convenience function for the C API; language bindings should use `clutter_transition_set_from_value()` instead.

`transition` : | a ClutterTransition
`value_type` : | the type of the value to set
`...` : | the initial value

Since 1.12

### clutter_transition_set_from_value ()

    void                clutter_transition_set_from_value   (ClutterTransition *transition,
                                                             const GValue *value);

Sets the initial value of the transition.

This is a convenience function that will either create the ClutterInterval used by `transition`, or will update it if the "interval" is already set.

This function will copy the contents of `value`, so it is safe to call `g_value_unset()` after it returns.

If `transition` already has a "interval" set, then `value` must hold the same type, or a transformable type, as the interval's "value-type" property.

This function is meant to be used by language bindings.

Rename to: clutter_transition_set_from

`transition` : | a ClutterTransition
`value` : | a GValue with the initial value of the transition

Since 1.12

### clutter_transition_set_to ()

    void                clutter_transition_set_to           (ClutterTransition *transition,
                                                             GType value_type,
                                                             ...);

Sets the final value of the transition.

This is a convenience function that will either create the ClutterInterval used by `transition`, or will update it if the "interval" is already set.

If `transition` already has a "interval" set, then `value` must hold the same type, or a transformable type, as the interval's "value-type" property.

This is a convenience function for the C API; language bindings should use `clutter_transition_set_to_value()` instead.

`transition` : | a ClutterTransition
`value_type` : | the type of the value to set
`...` : | the final value

Since 1.12

### clutter_transition_set_to_value ()

    void                clutter_transition_set_to_value     (ClutterTransition *transition,
                                                             const GValue *value);

Sets the final value of the transition.

This is a convenience function that will either create the ClutterInterval used by `transition`, or will update it if the "interval" is already set.

This function will copy the contents of `value`, so it is safe to call `g_value_unset()` after it returns.

If `transition` already has a "interval" set, then `value` must hold the same type, or a transformable type, as the interval's "value-type" property.

This function is meant to be used by language bindings.

Rename to: clutter_transition_set_to

`transition` : | a ClutterTransition
`value` : | a GValue with the final value of the transition

Since 1.12

### clutter_transition_set_interval ()

    void                clutter_transition_set_interval     (ClutterTransition *transition,
                                                             ClutterInterval *interval);

Sets the "interval" property using `interval`.

The `transition` will acquire a reference on the `interval`, sinking the floating flag on it if necessary.

`transition` : | a ClutterTransition
`interval` : | a ClutterInterval, or `NULL`. [allow-none]

Since 1.10

### clutter_transition_get_interval ()

    ClutterInterval *   clutter_transition_get_interval     (ClutterTransition *transition);

Retrieves the interval set using `clutter_transition_set_interval()`

`transition` : | a ClutterTransition
Returns : | a ClutterInterval, or `NULL`; the returned interval is owned by the ClutterTransition and it should not be freed directly. [transfer none]

Since 1.10

### clutter_transition_set_animatable ()

    void                clutter_transition_set_animatable   (ClutterTransition *transition,
                                                             ClutterAnimatable *animatable);

Sets the "animatable" property.

The `transition` will acquire a reference to the `animatable` instance, and will call the `ClutterTransitionClass.attached()` virtual function.

If an existing ClutterAnimatable is attached to `transition`, the reference will be released, and the `ClutterTransitionClass.detached()` virtual function will be called.

`transition` : | a ClutterTransition
`animatable` : | a ClutterAnimatable, or `NULL`. [allow-none]

Since 1.10

### clutter_transition_get_animatable ()

    ClutterAnimatable * clutter_transition_get_animatable   (ClutterTransition *transition);

Retrieves the ClutterAnimatable set using `clutter_transition_set_animatable()`.

`transition` : | a ClutterTransition
Returns : | a ClutterAnimatable, or `NULL`; the returned animatable is owned by the ClutterTransition, and it should not be freed directly. [transfer none]

Since 1.10

### clutter_transition_set_remove_on_complete ()

    void                clutter_transition_set_remove_on_complete
                                                            (ClutterTransition *transition,
                                                             gboolean remove_complete);

Sets whether `transition` should be detached from the ClutterAnimatable set using `clutter_transition_set_animatable()` when the "completed" signal is emitted.

`transition` : | a ClutterTransition
`remove_complete` : | whether to detach `transition` when complete

Since 1.10

### clutter_transition_get_remove_on_complete ()

    gboolean            clutter_transition_get_remove_on_complete
                                                            (ClutterTransition *transition);

Retrieves the value of the "remove-on-complete" property.

`transition` : | a ClutterTransition
Returns : | `TRUE` if the `transition` should be detached when complete, and `FALSE` otherwise

Since 1.10

## Property Details

### The `"animatable"` property

      "animatable"               ClutterAnimatable*    : Read / Write

The ClutterAnimatable instance currently being animated.

Since 1.10

### The `"interval"` property

      "interval"                 ClutterInterval*      : Read / Write

The ClutterInterval used to describe the initial and final states of the transition.

Since 1.10

### The `"remove-on-complete"` property

      "remove-on-complete"       gboolean              : Read / Write

Whether the ClutterTransition should be automatically detached from the "animatable" instance whenever the "stopped" signal is emitted.

The "remove-on-complete" property takes into account the value of the "repeat-count" property, and it only detaches the transition if the transition is not repeating.

Default value: FALSE

Since 1.10