pub trait TimelineExt: 'static {
Show 47 methods
// Required methods
fn add_marker(&self, marker_name: &str, progress: f64);
fn add_marker_at_time(&self, marker_name: &str, msecs: u32);
fn advance(&self, msecs: u32);
fn advance_to_marker(&self, marker_name: &str);
fn get_auto_reverse(&self) -> bool;
fn get_cubic_bezier_progress(&self) -> Option<(Point, Point)>;
fn get_current_repeat(&self) -> i32;
fn get_delay(&self) -> u32;
fn get_delta(&self) -> u32;
fn get_direction(&self) -> TimelineDirection;
fn get_duration(&self) -> u32;
fn get_duration_hint(&self) -> i64;
fn get_elapsed_time(&self) -> u32;
fn get_progress(&self) -> f64;
fn get_progress_mode(&self) -> AnimationMode;
fn get_repeat_count(&self) -> i32;
fn get_step_progress(&self) -> Option<(i32, StepMode)>;
fn has_marker(&self, marker_name: &str) -> bool;
fn is_playing(&self) -> bool;
fn list_markers(&self, msecs: i32) -> Vec<GString>;
fn pause(&self);
fn remove_marker(&self, marker_name: &str);
fn rewind(&self);
fn set_auto_reverse(&self, reverse: bool);
fn set_cubic_bezier_progress(&self, c_1: &Point, c_2: &Point);
fn set_delay(&self, msecs: u32);
fn set_direction(&self, direction: TimelineDirection);
fn set_duration(&self, msecs: u32);
fn set_progress_func(
&self,
func: Option<Box_<dyn Fn(&Timeline, f64, f64) -> f64 + 'static>>,
);
fn set_progress_mode(&self, mode: AnimationMode);
fn set_repeat_count(&self, count: i32);
fn set_step_progress(&self, n_steps: i32, step_mode: StepMode);
fn skip(&self, msecs: u32);
fn start(&self);
fn stop(&self);
fn connect_completed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_marker_reached<F: Fn(&Self, &str, i32) + 'static>(
&self,
f: F,
) -> SignalHandlerId;
fn connect_new_frame<F: Fn(&Self, i32) + 'static>(
&self,
f: F,
) -> SignalHandlerId;
fn connect_paused<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_started<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId;
fn connect_stopped<F: Fn(&Self, bool) + 'static>(
&self,
f: F,
) -> SignalHandlerId;
fn connect_property_auto_reverse_notify<F: Fn(&Self) + 'static>(
&self,
f: F,
) -> SignalHandlerId;
fn connect_property_delay_notify<F: Fn(&Self) + 'static>(
&self,
f: F,
) -> SignalHandlerId;
fn connect_property_direction_notify<F: Fn(&Self) + 'static>(
&self,
f: F,
) -> SignalHandlerId;
fn connect_property_duration_notify<F: Fn(&Self) + 'static>(
&self,
f: F,
) -> SignalHandlerId;
fn connect_property_progress_mode_notify<F: Fn(&Self) + 'static>(
&self,
f: F,
) -> SignalHandlerId;
fn connect_property_repeat_count_notify<F: Fn(&Self) + 'static>(
&self,
f: F,
) -> SignalHandlerId;
}
Expand description
Required Methods§
Sourcefn add_marker(&self, marker_name: &str, progress: f64)
fn add_marker(&self, marker_name: &str, progress: f64)
Adds a named marker that will be hit when the timeline has reached
the specified progress
.
Markers are unique string identifiers for a given position on the
timeline. Once self
reaches the given progress
of its duration,
if will emit a ::marker-reached signal for each marker attached to
that particular point.
A marker can be removed with TimelineExt::remove_marker
. The
timeline can be advanced to a marker using
TimelineExt::advance_to_marker
.
See also: TimelineExt::add_marker_at_time
§marker_name
the unique name for this marker
§progress
the normalized value of the position of the martke
Sourcefn add_marker_at_time(&self, marker_name: &str, msecs: u32)
fn add_marker_at_time(&self, marker_name: &str, msecs: u32)
Adds a named marker that will be hit when the timeline has been
running for msecs
milliseconds.
Markers are unique string identifiers for a given position on the
timeline. Once self
reaches the given msecs
, it will emit
a ::marker-reached signal for each marker attached to that position.
A marker can be removed with TimelineExt::remove_marker
. The
timeline can be advanced to a marker using
TimelineExt::advance_to_marker
.
See also: TimelineExt::add_marker
§marker_name
the unique name for this marker
§msecs
position of the marker in milliseconds
Sourcefn advance(&self, msecs: u32)
fn advance(&self, msecs: u32)
Advance timeline to the requested point. The point is given as a time in milliseconds since the timeline started.
The self
will not emit the Timeline::new-frame
signal for the given time. The first ::new-frame signal after the call to
TimelineExt::advance
will be emit the skipped markers.
§msecs
Time to advance to
Sourcefn advance_to_marker(&self, marker_name: &str)
fn advance_to_marker(&self, marker_name: &str)
Advances self
to the time of the given marker_name
.
Like TimelineExt::advance
, this function will not
emit the Timeline::new-frame
for the time where marker_name
is set, nor it will emit Timeline::marker-reached
for
marker_name
.
§marker_name
the name of the marker
Sourcefn get_auto_reverse(&self) -> bool
fn get_auto_reverse(&self) -> bool
Retrieves the value set by TimelineExt::set_auto_reverse
.
§Returns
true
if the timeline should automatically reverse, and
false
otherwise
Sourcefn get_cubic_bezier_progress(&self) -> Option<(Point, Point)>
fn get_cubic_bezier_progress(&self) -> Option<(Point, Point)>
Retrieves the control points for the cubic bezier progress mode.
§c_1
return location for the first control
point of the cubic bezier, or None
§c_2
return location for the second control
point of the cubic bezier, or None
§Returns
true
if the self
is using a cubic bezier progress
more, and false
otherwise
Sourcefn get_current_repeat(&self) -> i32
fn get_current_repeat(&self) -> i32
Sourcefn get_delta(&self) -> u32
fn get_delta(&self) -> u32
Retrieves the amount of time elapsed since the last ClutterTimeline::new-frame signal.
This function is only useful inside handlers for the ::new-frame signal, and its behaviour is undefined if the timeline is not playing.
§Returns
the amount of time in milliseconds elapsed since the last frame
Sourcefn get_direction(&self) -> TimelineDirection
fn get_direction(&self) -> TimelineDirection
Retrieves the direction of the timeline set with
TimelineExt::set_direction
.
§Returns
the direction of the timeline
Sourcefn get_duration(&self) -> u32
fn get_duration(&self) -> u32
Retrieves the duration of a Timeline
in milliseconds.
See TimelineExt::set_duration
.
§Returns
the duration of the timeline, in milliseconds.
Sourcefn get_duration_hint(&self) -> i64
fn get_duration_hint(&self) -> i64
Retrieves the full duration of the self
, taking into account the
current value of the Timeline:repeat-count
property.
If the Timeline:repeat-count
property is set to -1, this function
will return G_MAXINT64
.
The returned value is to be considered a hint, and it’s only valid
as long as the self
hasn’t been changed.
§Returns
the full duration of the Timeline
Sourcefn get_elapsed_time(&self) -> u32
fn get_elapsed_time(&self) -> u32
Sourcefn get_progress(&self) -> f64
fn get_progress(&self) -> f64
The position of the timeline in a normalized [-1, 2] interval.
The return value of this function is determined by the progress
mode set using TimelineExt::set_progress_mode
, or by the
progress function set using TimelineExt::set_progress_func
.
§Returns
the normalized current position in the timeline.
Sourcefn get_progress_mode(&self) -> AnimationMode
fn get_progress_mode(&self) -> AnimationMode
Retrieves the progress mode set using TimelineExt::set_progress_mode
or TimelineExt::set_progress_func
.
§Returns
a AnimationMode
Sourcefn get_repeat_count(&self) -> i32
fn get_repeat_count(&self) -> i32
Sourcefn get_step_progress(&self) -> Option<(i32, StepMode)>
fn get_step_progress(&self) -> Option<(i32, StepMode)>
Sourcefn has_marker(&self, marker_name: &str) -> bool
fn has_marker(&self, marker_name: &str) -> bool
Sourcefn is_playing(&self) -> bool
fn is_playing(&self) -> bool
Sourcefn list_markers(&self, msecs: i32) -> Vec<GString>
fn list_markers(&self, msecs: i32) -> Vec<GString>
Retrieves the list of markers at time msecs
. If msecs
is a
negative integer, all the markers attached to self
will be
returned.
§msecs
the time to check, or -1
§n_markers
the number of markers returned
§Returns
a newly allocated, None
terminated string array containing the names
of the markers. Use g_strfreev
when done.
Sourcefn remove_marker(&self, marker_name: &str)
fn remove_marker(&self, marker_name: &str)
Sourcefn rewind(&self)
fn rewind(&self)
Rewinds Timeline
to the first frame if its direction is
TimelineDirection::Forward
and the last frame if it is
TimelineDirection::Backward
.
Sourcefn set_auto_reverse(&self, reverse: bool)
fn set_auto_reverse(&self, reverse: bool)
Sets whether self
should reverse the direction after the
emission of the Timeline::completed
signal.
Setting the Timeline:auto-reverse
property to true
is the
equivalent of connecting a callback to the Timeline::completed
signal and changing the direction of the timeline from that callback;
for instance, this code:
static void
reverse_timeline (ClutterTimeline *timeline)
{
ClutterTimelineDirection dir = clutter_timeline_get_direction (timeline);
if (dir == CLUTTER_TIMELINE_FORWARD)
dir = CLUTTER_TIMELINE_BACKWARD;
else
dir = CLUTTER_TIMELINE_FORWARD;
clutter_timeline_set_direction (timeline, dir);
}
...
timeline = clutter_timeline_new (1000);
clutter_timeline_set_repeat_count (timeline, -1);
g_signal_connect (timeline, "completed",
G_CALLBACK (reverse_timeline),
NULL);
can be effectively replaced by:
timeline = clutter_timeline_new (1000);
clutter_timeline_set_repeat_count (timeline, -1);
clutter_timeline_set_auto_reverse (timeline);
§reverse
true
if the self
should reverse the direction
Sourcefn set_cubic_bezier_progress(&self, c_1: &Point, c_2: &Point)
fn set_cubic_bezier_progress(&self, c_1: &Point, c_2: &Point)
Sets the Timeline:progress-mode
of self
to AnimationMode::CubicBezier
, and sets the two control
points for the cubic bezier.
The cubic bezier curve is between (0, 0) and (1, 1). The X coordinate of the two control points must be in the [ 0, 1 ] range, while the Y coordinate of the two control points can exceed this range.
§c_1
the first control point for the cubic bezier
§c_2
the second control point for the cubic bezier
Sourcefn set_direction(&self, direction: TimelineDirection)
fn set_direction(&self, direction: TimelineDirection)
Sets the direction of self
, either TimelineDirection::Forward
or
TimelineDirection::Backward
.
§direction
the direction of the timeline
Sourcefn set_duration(&self, msecs: u32)
fn set_duration(&self, msecs: u32)
Sets the duration of the timeline, in milliseconds. The speed of the timeline depends on the ClutterTimeline:fps setting.
§msecs
duration of the timeline in milliseconds
Sourcefn set_progress_func(
&self,
func: Option<Box_<dyn Fn(&Timeline, f64, f64) -> f64 + 'static>>,
)
fn set_progress_func( &self, func: Option<Box_<dyn Fn(&Timeline, f64, f64) -> f64 + 'static>>, )
Sets a custom progress function for self
. The progress function will
be called by TimelineExt::get_progress
and will be used to compute
the progress value based on the elapsed time and the total duration of the
timeline.
If func
is not None
, the Timeline:progress-mode
property will
be set to AnimationMode::CustomMode
.
If func
is None
, any previously set progress function will be unset, and
the Timeline:progress-mode
property will be set to AnimationMode::Linear
.
§func
a progress function, or None
§data
data to pass to func
§notify
a function to be called when the progress function is removed or the timeline is disposed
Sourcefn set_progress_mode(&self, mode: AnimationMode)
fn set_progress_mode(&self, mode: AnimationMode)
Sets the progress function using a value from the AnimationMode
enumeration. The mode
cannot be AnimationMode::CustomMode
or bigger than
AnimationMode::AnimationLast
.
§mode
the progress mode, as a AnimationMode
Sourcefn set_repeat_count(&self, count: i32)
fn set_repeat_count(&self, count: i32)
Sets the number of times the self
should repeat.
If count
is 0, the timeline never repeats.
If count
is -1, the timeline will always repeat until
it’s stopped.
§count
the number of times the timeline should repeat
Sourcefn set_step_progress(&self, n_steps: i32, step_mode: StepMode)
fn set_step_progress(&self, n_steps: i32, step_mode: StepMode)
Sourcefn connect_completed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId
fn connect_completed<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId
The Timeline::completed
signal is emitted when the timeline’s
elapsed time reaches the value of the Timeline:duration
property.
This signal will be emitted even if the Timeline
is set to be
repeating.
If you want to get notification on whether the Timeline
has
been stopped or has finished its run, including its eventual repeats,
you should use the Timeline::stopped
signal instead.
Sourcefn connect_marker_reached<F: Fn(&Self, &str, i32) + 'static>(
&self,
f: F,
) -> SignalHandlerId
fn connect_marker_reached<F: Fn(&Self, &str, i32) + 'static>( &self, f: F, ) -> SignalHandlerId
The ::marker-reached signal is emitted each time a timeline
reaches a marker set with
TimelineExt::add_marker_at_time
. This signal is detailed
with the name of the marker as well, so it is possible to connect
a callback to the ::marker-reached signal for a specific marker
with:
<informalexample>``<programlisting>
clutter_timeline_add_marker_at_time (timeline, “foo”, 500);
clutter_timeline_add_marker_at_time (timeline, “bar”, 750);
g_signal_connect (timeline, “marker-reached”,
G_CALLBACK (each_marker_reached), NULL);
g_signal_connect (timeline, “marker-reached::foo”,
G_CALLBACK (foo_marker_reached), NULL);
g_signal_connect (timeline, “marker-reached::bar”,
G_CALLBACK (bar_marker_reached), NULL);
</programlisting>``</informalexample>
In the example, the first callback will be invoked for both the “foo” and “bar” marker, while the second and third callbacks will be invoked for the “foo” or “bar” markers, respectively.
§marker_name
the name of the marker reached
§msecs
the elapsed time
Sourcefn connect_new_frame<F: Fn(&Self, i32) + 'static>(
&self,
f: F,
) -> SignalHandlerId
fn connect_new_frame<F: Fn(&Self, i32) + 'static>( &self, f: F, ) -> SignalHandlerId
The ::new-frame signal is emitted for each timeline running timeline before a new frame is drawn to give animations a chance to update the scene.
§msecs
the elapsed time between 0 and duration
Sourcefn connect_paused<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId
fn connect_paused<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId
The ::paused signal is emitted when TimelineExt::pause
is invoked.
Sourcefn connect_started<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId
fn connect_started<F: Fn(&Self) + 'static>(&self, f: F) -> SignalHandlerId
The ::started signal is emitted when the timeline starts its run.
This might be as soon as TimelineExt::start
is invoked or
after the delay set in the ClutterTimeline:delay property has
expired.
Sourcefn connect_stopped<F: Fn(&Self, bool) + 'static>(&self, f: F) -> SignalHandlerId
fn connect_stopped<F: Fn(&Self, bool) + 'static>(&self, f: F) -> SignalHandlerId
The Timeline::stopped
signal is emitted when the timeline
has been stopped, either because TimelineExt::stop
has been
called, or because it has been exhausted.
This is different from the Timeline::completed
signal,
which gets emitted after every repeat finishes.
If the Timeline
has is marked as infinitely repeating,
this signal will never be emitted.
§is_finished
true
if the signal was emitted at the end of the
timeline.
fn connect_property_auto_reverse_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
fn connect_property_delay_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
fn connect_property_direction_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
fn connect_property_duration_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
fn connect_property_progress_mode_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
fn connect_property_repeat_count_notify<F: Fn(&Self) + 'static>( &self, f: F, ) -> SignalHandlerId
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.