[Goodies-commits] r3248 - ristretto/trunk/src

Stephan Arts stephan at xfce.org
Tue Sep 25 19:23:54 CEST 2007


Author: stephan
Date: 2007-09-25 17:23:54 +0000 (Tue, 25 Sep 2007)
New Revision: 3248

Modified:
   ristretto/trunk/src/main_window.c
   ristretto/trunk/src/navigator.c
   ristretto/trunk/src/navigator.h
Log:
Fix remaining signal-handlers


Modified: ristretto/trunk/src/main_window.c
===================================================================
--- ristretto/trunk/src/main_window.c	2007-09-25 05:52:58 UTC (rev 3247)
+++ ristretto/trunk/src/main_window.c	2007-09-25 17:23:54 UTC (rev 3248)
@@ -33,6 +33,7 @@
     GtkWidget *picture_viewer;
     GtkWidget *statusbar;
     GtkRecentManager *manager;
+    gdouble zoom_factor;
 
     struct {
         GtkWidget *main_vbox;
@@ -144,6 +145,24 @@
 cb_rstto_main_window_pause(GtkWidget *widget, RsttoMainWindow *window);
 
 static void
+cb_rstto_main_window_next(GtkWidget *widget, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_previous(GtkWidget *widget, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_last(GtkWidget *widget, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_first(GtkWidget *widget, RsttoMainWindow *window);
+
+static void
+cb_rstto_main_window_zoom_in(GtkWidget *widget, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_zoom_out(GtkWidget *widget, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_zoom_100(GtkWidget *widget, RsttoMainWindow *window);
+static void
+cb_rstto_main_window_zoom_fit(GtkWidget *widget, RsttoMainWindow *window);
+
+static void
 cb_rstto_main_window_open_file(GtkWidget *widget, RsttoMainWindow *window);
 static void
 cb_rstto_main_window_open_folder(GtkWidget *widget, RsttoMainWindow *window);
@@ -196,6 +215,7 @@
 rstto_main_window_init(RsttoMainWindow *window)
 {
     window->priv = g_new0(RsttoMainWindowPriv, 1);
+    window->priv->zoom_factor = 1.2;
 
     GtkAccelGroup *accel_group = gtk_accel_group_new();
 
@@ -437,7 +457,7 @@
             "activate",
             G_CALLBACK(cb_rstto_main_window_pause), window);
 
-    /* Window evets */
+    /* Window events */
     g_signal_connect(G_OBJECT(window),
             "window-state-event",
             G_CALLBACK(cb_rstto_main_window_state_event), NULL);
@@ -445,7 +465,7 @@
             "key-press-event",
             G_CALLBACK(cb_rstto_main_window_key_press_event), NULL);
 
-    /* Generic */
+    /* Generic menu signals */
     g_signal_connect(window->priv->menus.file.menu_item_open_file, 
             "activate",
             G_CALLBACK(cb_rstto_main_window_open_file), window);
@@ -456,7 +476,8 @@
             "activate",
             G_CALLBACK(cb_rstto_main_window_close), window);
     g_signal_connect(G_OBJECT(window->priv->menus.file.recently.menu),
-            "item-activated", G_CALLBACK(cb_rstto_main_window_open_recent), window);
+            "item-activated",
+            G_CALLBACK(cb_rstto_main_window_open_recent), window);
     g_signal_connect(window->priv->menus.file.menu_item_quit, 
             "activate",
             G_CALLBACK(cb_rstto_main_window_quit), window);
@@ -464,6 +485,44 @@
             "activate",
             G_CALLBACK(cb_rstto_main_window_about), window);
 
+    g_signal_connect(window->priv->menus.go.menu_item_next,
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_next), window);
+    g_signal_connect(window->priv->menus.go.menu_item_previous,
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_previous), window);
+    g_signal_connect(window->priv->menus.go.menu_item_first,
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_first), window);
+    g_signal_connect(window->priv->menus.go.menu_item_last,
+            "activate",
+            G_CALLBACK(cb_rstto_main_window_last), window);
+
+    /* Toolbar signals */
+    g_signal_connect(window->priv->toolbar.tool_item_open,
+            "clicked",
+            G_CALLBACK(cb_rstto_main_window_open_folder), window);
+    g_signal_connect(window->priv->toolbar.tool_item_next,
+            "clicked",
+            G_CALLBACK(cb_rstto_main_window_next), window);
+    g_signal_connect(window->priv->toolbar.tool_item_previous,
+            "clicked",
+            G_CALLBACK(cb_rstto_main_window_previous), window);
+
+    g_signal_connect(window->priv->toolbar.tool_item_zoom_in,
+            "clicked",
+            G_CALLBACK(cb_rstto_main_window_zoom_in), window);
+    g_signal_connect(window->priv->toolbar.tool_item_zoom_out,
+            "clicked",
+            G_CALLBACK(cb_rstto_main_window_zoom_out), window);
+    g_signal_connect(window->priv->toolbar.tool_item_zoom_100,
+            "clicked",
+            G_CALLBACK(cb_rstto_main_window_zoom_100), window);
+    g_signal_connect(window->priv->toolbar.tool_item_zoom_fit,
+            "clicked",
+            G_CALLBACK(cb_rstto_main_window_zoom_fit), window);
+
+    /* Misc */
     g_signal_connect(G_OBJECT(window->priv->navigator),
             "iter-changed",
             G_CALLBACK(cb_rstto_main_window_nav_iter_changed), window);
@@ -593,6 +652,14 @@
         switch(event->keyval)
         {
             case GDK_F5:
+                if (rstto_navigator_is_running(RSTTO_NAVIGATOR(rstto_window->priv->navigator)))
+                {
+                    cb_rstto_main_window_pause(rstto_window->priv->menus.go.menu_item_pause, rstto_window);
+                }
+                else
+                {
+                    cb_rstto_main_window_play(rstto_window->priv->menus.go.menu_item_play, rstto_window);
+                }
                 break;
             case GDK_F11:
                 if(gdk_window_get_state(widget->window) & GDK_WINDOW_STATE_FULLSCREEN)
@@ -655,6 +722,7 @@
     gtk_container_remove(GTK_CONTAINER(window->priv->menus.go.menu), widget);
     gtk_menu_shell_insert(GTK_MENU_SHELL(window->priv->menus.go.menu), window->priv->menus.go.menu_item_pause, 5);
     gtk_widget_show_all(window->priv->menus.go.menu_item_pause);
+    rstto_navigator_set_running(RSTTO_NAVIGATOR(window->priv->navigator), TRUE);
 }
 
 static void
@@ -664,6 +732,7 @@
     gtk_container_remove(GTK_CONTAINER(window->priv->menus.go.menu), widget);
     gtk_menu_shell_insert(GTK_MENU_SHELL(window->priv->menus.go.menu), window->priv->menus.go.menu_item_play, 5);
     gtk_widget_show_all(window->priv->menus.go.menu_item_play);
+    rstto_navigator_set_running(RSTTO_NAVIGATOR(window->priv->navigator), FALSE);
 }
 
 static void
@@ -885,6 +954,8 @@
         gtk_widget_set_sensitive(window->priv->menus.go.menu_item_last, TRUE);
         gtk_widget_set_sensitive(window->priv->menus.go.menu_item_previous, TRUE);
         gtk_widget_set_sensitive(window->priv->menus.go.menu_item_next, TRUE);
+        gtk_widget_set_sensitive(window->priv->menus.go.menu_item_play, TRUE);
+        gtk_widget_set_sensitive(window->priv->menus.go.menu_item_pause, TRUE);
     }
     else
     {
@@ -895,7 +966,59 @@
             gtk_widget_set_sensitive(window->priv->menus.go.menu_item_last, FALSE);
             gtk_widget_set_sensitive(window->priv->menus.go.menu_item_previous, FALSE);
             gtk_widget_set_sensitive(window->priv->menus.go.menu_item_next, FALSE);
+            gtk_widget_set_sensitive(window->priv->menus.go.menu_item_play, FALSE);
+            gtk_widget_set_sensitive(window->priv->menus.go.menu_item_pause, FALSE);
         }
     }
 
 }
+
+static void
+cb_rstto_main_window_next(GtkWidget *widget, RsttoMainWindow *window)
+{
+    rstto_navigator_jump_forward(window->priv->navigator);
+}
+
+static void
+cb_rstto_main_window_previous(GtkWidget *widget, RsttoMainWindow *window)
+{
+    rstto_navigator_jump_back(window->priv->navigator);
+}
+
+static void
+cb_rstto_main_window_first(GtkWidget *widget, RsttoMainWindow *window)
+{
+    rstto_navigator_jump_first(window->priv->navigator);
+}
+
+static void
+cb_rstto_main_window_last(GtkWidget *widget, RsttoMainWindow *window)
+{
+    rstto_navigator_jump_last(window->priv->navigator);
+}
+
+static void
+cb_rstto_main_window_zoom_in(GtkWidget *widget, RsttoMainWindow *window)
+{
+    gdouble scale = rstto_picture_viewer_get_scale(RSTTO_PICTURE_VIEWER(window->priv->picture_viewer));
+    rstto_picture_viewer_set_scale(RSTTO_PICTURE_VIEWER(window->priv->picture_viewer), scale * window->priv->zoom_factor);
+}
+
+static void
+cb_rstto_main_window_zoom_out(GtkWidget *widget, RsttoMainWindow *window)
+{
+    gdouble scale = rstto_picture_viewer_get_scale(RSTTO_PICTURE_VIEWER(window->priv->picture_viewer));
+    rstto_picture_viewer_set_scale(RSTTO_PICTURE_VIEWER(window->priv->picture_viewer), scale / window->priv->zoom_factor);
+}
+
+static void
+cb_rstto_main_window_zoom_100(GtkWidget *widget, RsttoMainWindow *window)
+{
+    rstto_picture_viewer_set_scale(RSTTO_PICTURE_VIEWER(window->priv->picture_viewer), 1);
+}
+
+static void
+cb_rstto_main_window_zoom_fit(GtkWidget *widget, RsttoMainWindow *window)
+{
+    rstto_picture_viewer_fit_scale(RSTTO_PICTURE_VIEWER(window->priv->picture_viewer));
+}

Modified: ristretto/trunk/src/navigator.c
===================================================================
--- ristretto/trunk/src/navigator.c	2007-09-25 05:52:58 UTC (rev 3247)
+++ ristretto/trunk/src/navigator.c	2007-09-25 17:23:54 UTC (rev 3248)
@@ -295,6 +295,12 @@
     }
 }
 
+gboolean
+rstto_navigator_is_running (RsttoNavigator *navigator)
+{
+    return navigator->running;
+}
+
 RsttoNavigatorEntry *
 rstto_navigator_get_file (RsttoNavigator *navigator)
 {
@@ -599,3 +605,4 @@
     entry->fit_to_screen = fts;
 }
 
+

Modified: ristretto/trunk/src/navigator.h
===================================================================
--- ristretto/trunk/src/navigator.h	2007-09-25 05:52:58 UTC (rev 3247)
+++ ristretto/trunk/src/navigator.h	2007-09-25 17:23:54 UTC (rev 3248)
@@ -75,6 +75,7 @@
 
 void       rstto_navigator_set_running (RsttoNavigator *navigator,
                                         gboolean running);
+gboolean   rstto_navigator_is_running (RsttoNavigator *navigator);
 void
 rstto_navigator_set_timeout (RsttoNavigator *nav, gint);
 




More information about the Goodies-commits mailing list