Class
ClutterTimeline
Description [src]
class Clutter.Timeline : GObject.Object
{
/* No available fields */
}
A class for time-based events
ClutterTimeline is a base class for managing time-based event that cause
Clutter to redraw a stage, such as animations.
Each ClutterTimeline instance has a duration: once a timeline has been
started, using clutter_timeline_start(), it will emit a signal that can
be used to update the state of the actors.
It is important to note that ClutterTimeline is not a generic API for
calling closures after an interval; each Timeline is tied into a frame
clock used to drive the frame cycle.
Users of ClutterTimeline should connect to the ClutterTimeline::new-frame
signal, which is emitted each time a timeline is advanced during the maste
clock iteration. The ClutterTimeline::new-frame signal provides the time
elapsed since the beginning of the timeline, in milliseconds. A normalized
progress value can be obtained by calling clutter_timeline_get_progress().
By using clutter_timeline_get_delta() it is possible to obtain the wallclock
time elapsed since the last emission of the ClutterTimeline::new-frame signal.
Initial state can be set up by using the ClutterTimeline::started signal,
while final state can be set up by using the ClutterTimeline::stopped
signal. The ClutterTimeline guarantees the emission of at least a single
ClutterTimeline::new-frame signal, as well as the emission of the
ClutterTimeline::completed signal every time the ClutterTimeline reaches
its ClutterTimeline:duration.
It is possible to connect to specific points in the timeline progress by
adding markers using clutter_timeline_add_marker_at_time() and connecting
to the ClutterTimeline::marker-reached signal.
Timelines can be made to loop once they reach the end of their duration, by
using clutter_timeline_set_repeat_count(); a looping timeline will still
emit the ClutterTimeline::completed signal once it reaches the end of its
duration at each repeat. If you want to be notified of the end of the last
repeat, use the ClutterTimeline::stopped signal.
Timelines have a ClutterTimeline:direction: the default direction is
CLUTTER_TIMELINE_FORWARD, and goes from 0 to the duration; it is possible
to change the direction to CLUTTER_TIMELINE_BACKWARD, and have the timeline
go from the duration to 0. The direction can be automatically reversed
when reaching completion by using the ClutterTimeline:auto-reverse property.
Timelines are used in the Clutter animation framework by classes like
ClutterTransition.
Constructors
clutter_timeline_new_for_actor
Creates a new ClutterTimeline with a duration of duration milli seconds.
clutter_timeline_new_for_frame_clock
Creates a new ClutterTimeline with a duration of duration_ms milli seconds.
Instance methods
clutter_timeline_add_marker
Adds a named marker that will be hit when the timeline has reached
the specified progress.
clutter_timeline_add_marker_at_time
Adds a named marker that will be hit when the timeline has been
running for msecs milliseconds.
clutter_timeline_advance
Advance timeline to the requested point. The point is given as a time in milliseconds since the timeline started.
clutter_timeline_get_cubic_bezier_progress
Retrieves the control points for the cubic bezier progress mode.
clutter_timeline_get_delta
Retrieves the amount of time elapsed since the last
ClutterTimeline::new-frame signal.
clutter_timeline_get_direction
Retrieves the direction of the timeline set with
clutter_timeline_set_direction().
clutter_timeline_get_duration
Retrieves the duration of a ClutterTimeline in milliseconds. See clutter_timeline_set_duration().
clutter_timeline_get_duration_hint
Retrieves the full duration of the timeline, taking into account the
current value of the ClutterTimeline:repeat-count property.
clutter_timeline_get_progress_mode
Retrieves the progress mode set using clutter_timeline_set_progress_mode()
or clutter_timeline_set_progress_func().
clutter_timeline_get_repeat_count
Retrieves the number set using clutter_timeline_set_repeat_count().
clutter_timeline_get_step_progress
Retrieves the parameters of the step progress mode used by timeline.
clutter_timeline_list_markers
Retrieves the list of markers at time msecs. If msecs is a
negative integer, all the markers attached to timeline will be returned.
clutter_timeline_rewind
Rewinds ClutterTimeline to the first frame if its direction is
CLUTTER_TIMELINE_FORWARD and the last frame if it is
CLUTTER_TIMELINE_BACKWARD.
clutter_timeline_set_auto_reverse
Sets whether timeline should reverse the direction after the
emission of the ClutterTimeline::completed signal.
clutter_timeline_set_cubic_bezier_progress
Sets the ClutterTimeline:progress-mode of timeline
to CLUTTER_CUBIC_BEZIER, and sets the two control
points for the cubic bezier.
clutter_timeline_set_direction
Sets the direction of timeline, either CLUTTER_TIMELINE_FORWARD or
CLUTTER_TIMELINE_BACKWARD.
clutter_timeline_set_duration
Sets the duration of the timeline, in milliseconds. The speed
of the timeline depends on the ClutterTimeline:frame-clock setting.
clutter_timeline_set_progress_func
Sets a custom progress function for timeline. The progress function will
be called by clutter_timeline_get_progress() and will be used to compute
the progress value based on the elapsed time and the total duration of the timeline.
clutter_timeline_set_progress_mode
Sets the progress function using a value from the ClutterAnimationMode
enumeration. The mode cannot be CLUTTER_CUSTOM_MODE or bigger than
CLUTTER_ANIMATION_LAST.
clutter_timeline_set_step_progress
Sets the ClutterTimeline:progress-mode of the timeline to CLUTTER_STEPS
and provides the parameters of the step function.
Properties
Clutter.Timeline:auto-reverse
If the direction of the timeline should be automatically reversed when reaching the end.
Clutter.Timeline:delay
A delay, in milliseconds, that should be observed by the timeline before actually starting.
Clutter.Timeline:direction
The direction of the timeline, either CLUTTER_TIMELINE_FORWARD or
CLUTTER_TIMELINE_BACKWARD.
Clutter.Timeline:duration
Duration of the timeline in milliseconds, depending on the
ClutterTimeline:frame-clock value.
Signals
Clutter.Timeline::completed
The signal is emitted when the timeline’s
elapsed time reaches the value of the ClutterTimeline:duration
property.
Clutter.Timeline::marker-reached
The signal is emitted each time a timeline
reaches a marker set with clutter_timeline_add_marker_at_time().
Clutter.Timeline::new-frame
The signal is emitted for each timeline running timeline before a new frame is drawn to give animations a chance to update the scene.
Clutter.Timeline::started
The signal is emitted when the timeline starts its run.
This might be as soon as clutter_timeline_start() is invoked or
after the delay set in the ClutterTimeline:delay property has expired.
Clutter.Timeline::stopped
The signal is emitted when the timeline
has been stopped, either because clutter_timeline_stop() has been
called, or because it has been exhausted.
Signals inherited from GObject (1)
GObject::notify
The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.
Class structure
struct ClutterTimelineClass {
void (* started) (
ClutterTimeline* timeline
);
void (* completed) (
ClutterTimeline* timeline
);
void (* paused) (
ClutterTimeline* timeline
);
void (* new_frame) (
ClutterTimeline* timeline,
gint msecs
);
void (* marker_reached) (
ClutterTimeline* timeline,
const gchar* marker_name,
gint msecs
);
void (* stopped) (
ClutterTimeline* timeline,
gboolean is_finished
);
}
The ClutterTimelineClass structure contains only private data.
Class members
started: void (* started) ( ClutterTimeline* timeline )Class handler for the
ClutterTimeline::startedsignal.completed: void (* completed) ( ClutterTimeline* timeline )Class handler for the
ClutterTimeline::completedsignal.paused: void (* paused) ( ClutterTimeline* timeline )Class handler for the
ClutterTimeline::pausedsignal.new_frame: void (* new_frame) ( ClutterTimeline* timeline, gint msecs )Class handler for the
ClutterTimeline::new-framesignal.marker_reached: void (* marker_reached) ( ClutterTimeline* timeline, const gchar* marker_name, gint msecs )Class handler for the
ClutterTimeline::marker-reachedsignal.stopped: void (* stopped) ( ClutterTimeline* timeline, gboolean is_finished )Class handler for the
ClutterTimeline::stoppedsignal.