[gthumb] show a pause sign when the slideshow is paused
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] show a pause sign when the slideshow is paused
- Date: Sat, 11 Sep 2010 10:09:02 +0000 (UTC)
commit 0e23e51c16f72dc73266ac312d77e1e71e2c9fe9
Author: Paolo Bacchilega <paobac src gnome org>
Date: Sat Sep 11 10:58:55 2010 +0200
show a pause sign when the slideshow is paused
only for the clutter projector at the moment
extensions/slideshow/gth-slideshow.c | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
---
diff --git a/extensions/slideshow/gth-slideshow.c b/extensions/slideshow/gth-slideshow.c
index feb2e33..612174b 100644
--- a/extensions/slideshow/gth-slideshow.c
+++ b/extensions/slideshow/gth-slideshow.c
@@ -59,6 +59,7 @@ struct _GthSlideshowPrivate {
ClutterTimeline *timeline;
ClutterActor *image1;
ClutterActor *image2;
+ ClutterActor *paused_actor;
#endif
GdkPixbuf *current_pixbuf;
GtkWidget *viewer;
@@ -911,10 +912,31 @@ clutter_projector_hide_cursor (GthSlideshow *self)
static void
clutter_projector_paused (GthSlideshow *self)
{
+ float stage_w;
+ float stage_h;
+ float actor_w;
+ float actor_h;
+
if (self->priv->animating) {
clutter_timeline_pause (self->priv->timeline);
_gth_slideshow_animation_completed (self);
}
+
+ clutter_actor_get_size (self->stage, &stage_w, &stage_h);
+ clutter_actor_get_size (self->stage, &actor_w, &actor_h);
+ clutter_actor_set_position (self->priv->paused_actor, stage_w / 2.0, stage_h / 2.0);
+ clutter_actor_set_anchor_point_from_gravity (self->priv->paused_actor, CLUTTER_GRAVITY_CENTER);
+ clutter_actor_set_scale (self->priv->paused_actor, 5.0, 5.0);
+ clutter_actor_set_opacity (self->priv->paused_actor, 255);
+ clutter_actor_raise_top (self->priv->paused_actor);
+ clutter_actor_show (self->priv->paused_actor);
+
+ clutter_actor_animate (self->priv->paused_actor,
+ CLUTTER_LINEAR, 500,
+ "opacity", 0,
+ "scale-x", 15.0,
+ "scale-y", 15.0,
+ NULL);
}
@@ -1071,6 +1093,12 @@ clutter_projector_construct (GthSlideshow *self)
g_signal_connect (self->priv->timeline, "new-frame", G_CALLBACK (animation_frame_cb), self);
g_signal_connect (self->priv->timeline, "started", G_CALLBACK (animation_started_cb), self);
+ self->priv->paused_actor = gtk_clutter_texture_new_from_stock (GTK_WIDGET (self),
+ GTK_STOCK_MEDIA_PAUSE,
+ GTK_ICON_SIZE_DIALOG);
+ clutter_actor_hide (self->priv->paused_actor);
+ clutter_container_add_actor (CLUTTER_CONTAINER (self->stage), self->priv->paused_actor);
+
g_signal_connect (self, "size-allocate", G_CALLBACK (gth_slideshow_size_allocate_cb), self);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]