[Goodies-commits] r2918 - ristretto/trunk/src
Stephan Arts
stephan at xfce.org
Mon Jul 16 13:51:25 CEST 2007
Author: stephan
Date: 2007-07-16 11:51:25 +0000 (Mon, 16 Jul 2007)
New Revision: 2918
Modified:
ristretto/trunk/src/main.c
Log:
improve slideshow support
Modified: ristretto/trunk/src/main.c
===================================================================
--- ristretto/trunk/src/main.c 2007-07-16 11:33:11 UTC (rev 2917)
+++ ristretto/trunk/src/main.c 2007-07-16 11:51:25 UTC (rev 2918)
@@ -27,6 +27,8 @@
static GList *file_list = NULL;
static GList *file_iter = NULL;
+static gboolean playing = FALSE;
+
static void
cb_rstto_zoom_fit(GtkToolItem *item, RsttoPictureViewer *viewer);
static void
@@ -37,10 +39,15 @@
cb_rstto_zoom_out(GtkToolItem *item, RsttoPictureViewer *viewer);
static void
-cb_rstto_back(GtkToolItem *item, RsttoPictureViewer *viewer);
+cb_rstto_previous(GtkToolItem *item, RsttoPictureViewer *viewer);
static void
cb_rstto_forward(GtkToolItem *item, RsttoPictureViewer *viewer);
+static void
+cb_rstto_play(GtkToolItem *item, RsttoPictureViewer *viewer);
+static gboolean
+play_forward(RsttoPictureViewer *viewer);
+
static void
cb_rstto_open(GtkToolItem *item, RsttoPictureViewer *viewer);
@@ -105,9 +112,10 @@
GtkToolItem *zoom_100= gtk_tool_button_new_from_stock(GTK_STOCK_ZOOM_100);
GtkToolItem *zoom_out= gtk_tool_button_new_from_stock(GTK_STOCK_ZOOM_OUT);
GtkToolItem *zoom_in = gtk_tool_button_new_from_stock(GTK_STOCK_ZOOM_IN);
- GtkToolItem *forward = gtk_tool_button_new_from_stock(GTK_STOCK_GO_FORWARD);
GtkToolItem *separator = gtk_separator_tool_item_new();
- GtkToolItem *back = gtk_tool_button_new_from_stock(GTK_STOCK_GO_BACK);
+ GtkToolItem *forward = gtk_tool_button_new_from_stock(GTK_STOCK_MEDIA_FORWARD);
+ GtkToolItem *play = gtk_tool_button_new_from_stock(GTK_STOCK_MEDIA_PLAY);
+ GtkToolItem *previous = gtk_tool_button_new_from_stock(GTK_STOCK_MEDIA_REWIND);
GtkToolItem *open = gtk_tool_button_new_from_stock(GTK_STOCK_OPEN);
GtkToolItem *spacer = gtk_tool_item_new();
@@ -136,7 +144,8 @@
gtk_toolbar_insert(GTK_TOOLBAR(tool_bar), zoom_in, 0);
gtk_toolbar_insert(GTK_TOOLBAR(tool_bar), separator, 0);
gtk_toolbar_insert(GTK_TOOLBAR(tool_bar), forward, 0);
- gtk_toolbar_insert(GTK_TOOLBAR(tool_bar), back, 0);
+ gtk_toolbar_insert(GTK_TOOLBAR(tool_bar), play, 0);
+ gtk_toolbar_insert(GTK_TOOLBAR(tool_bar), previous, 0);
gtk_toolbar_insert(GTK_TOOLBAR(tool_bar), spacer, 0);
gtk_toolbar_insert(GTK_TOOLBAR(tool_bar), open, 0);
@@ -145,7 +154,8 @@
g_signal_connect(G_OBJECT(zoom_in), "clicked", G_CALLBACK(cb_rstto_zoom_in), viewer);
g_signal_connect(G_OBJECT(zoom_out), "clicked", G_CALLBACK(cb_rstto_zoom_out), viewer);
g_signal_connect(G_OBJECT(forward), "clicked", G_CALLBACK(cb_rstto_forward), viewer);
- g_signal_connect(G_OBJECT(back), "clicked", G_CALLBACK(cb_rstto_back), viewer);
+ g_signal_connect(G_OBJECT(play), "clicked", G_CALLBACK(cb_rstto_play), viewer);
+ g_signal_connect(G_OBJECT(previous), "clicked", G_CALLBACK(cb_rstto_previous), viewer);
g_signal_connect(G_OBJECT(open), "clicked", G_CALLBACK(cb_rstto_open), viewer);
gtk_container_add(GTK_CONTAINER(window), main_vbox);
@@ -264,7 +274,7 @@
}
static void
-cb_rstto_back(GtkToolItem *item, RsttoPictureViewer *viewer)
+cb_rstto_previous(GtkToolItem *item, RsttoPictureViewer *viewer)
{
GdkPixbuf *pixbuf;
if(file_iter)
@@ -285,3 +295,27 @@
g_free(filename);
}
}
+
+static void
+cb_rstto_play(GtkToolItem *item, RsttoPictureViewer *viewer)
+{
+ if(playing == TRUE)
+ {
+ gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(item), GTK_STOCK_MEDIA_PLAY);
+ playing = FALSE;
+ }
+ else
+ {
+ gtk_tool_button_set_stock_id(GTK_TOOL_BUTTON(item), GTK_STOCK_MEDIA_PAUSE);
+ g_timeout_add(5000, (GSourceFunc)play_forward, viewer);
+ playing = TRUE;
+ }
+}
+
+static gboolean
+play_forward(RsttoPictureViewer *viewer)
+{
+ if(playing == TRUE)
+ cb_rstto_forward(NULL, viewer);
+ return playing;
+}
More information about the Goodies-commits
mailing list