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

Stephan Arts stephan at xfce.org
Wed Aug 1 00:27:26 CEST 2007


Author: stephan
Date: 2007-07-31 22:27:26 +0000 (Tue, 31 Jul 2007)
New Revision: 2940

Modified:
   ristretto/trunk/src/main.c
Log:
add initial fullscreen-mode mockup

Modified: ristretto/trunk/src/main.c
===================================================================
--- ristretto/trunk/src/main.c	2007-07-31 00:33:52 UTC (rev 2939)
+++ ristretto/trunk/src/main.c	2007-07-31 22:27:26 UTC (rev 2940)
@@ -35,6 +35,9 @@
 cb_rstto_zoom_out(GtkToolItem *item, RsttoPictureViewer *viewer);
 
 static void
+cb_rstto_fullscreen(GtkWidget *, GdkEventWindowState *event, RsttoPictureViewer *viewer);
+
+static void
 cb_rstto_previous(GtkToolItem *item, RsttoNavigator *);
 static void
 cb_rstto_forward(GtkToolItem *item, RsttoNavigator *);
@@ -46,10 +49,18 @@
 
 static void
 cb_rstto_help_about(GtkToolItem *item, GtkWindow *);
+static void
+cb_rstto_toggle_fullscreen(GtkToolItem *item, GtkWindow *window);
 
 static void
 cb_rstto_nav_file_changed(RsttoNavigator *navigator, GtkWindow *window);
 
+static gboolean window_fullscreen = FALSE;
+static GtkWidget *menu_bar;
+static GtkWidget *image_tool_bar;
+static GtkWidget *app_tool_bar;
+static GtkWidget *status_bar;
+
 int main(int argc, char **argv)
 {
     ThunarVfsPath *path = NULL;
@@ -86,10 +97,10 @@
 	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(s_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 	GtkWidget *main_vbox = gtk_vbox_new(0, FALSE);
 	GtkWidget *main_hbox = gtk_hbox_new(0, FALSE);
-    GtkWidget *menu_bar = gtk_menu_bar_new();
-	GtkWidget *image_tool_bar = gtk_toolbar_new();
-	GtkWidget *app_tool_bar = gtk_toolbar_new();
-    GtkWidget *status_bar = gtk_statusbar_new();
+    menu_bar = gtk_menu_bar_new();
+	image_tool_bar = gtk_toolbar_new();
+	app_tool_bar = gtk_toolbar_new();
+    status_bar = gtk_statusbar_new();
 
     GtkWidget *menu_item_file = gtk_menu_item_new_with_mnemonic(_("_File"));
     GtkWidget *menu_item_open = gtk_image_menu_item_new_from_stock(GTK_STOCK_OPEN, NULL);
@@ -110,11 +121,11 @@
 	gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_edit), menu_edit);
 
     GtkWidget *menu_item_view = gtk_menu_item_new_with_mnemonic(_("_View"));
-    GtkWidget *menu_item_view_zoom = gtk_check_menu_item_new_with_mnemonic(_("View Zoom toolbar"));
+    GtkWidget *menu_item_view_fs = gtk_image_menu_item_new_from_stock(GTK_STOCK_FULLSCREEN, NULL);
 
     GtkWidget *menu_view = gtk_menu_new();
 	gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_view), menu_view);
-    gtk_menu_shell_append(GTK_MENU_SHELL(menu_view), menu_item_view_zoom);
+    gtk_menu_shell_append(GTK_MENU_SHELL(menu_view), menu_item_view_fs);
 
     GtkWidget *menu_item_help = gtk_menu_item_new_with_mnemonic(_("_Help"));
     GtkWidget *menu_item_help_about = gtk_image_menu_item_new_from_stock(GTK_STOCK_ABOUT, NULL);
@@ -183,8 +194,10 @@
 	g_signal_connect(G_OBJECT(menu_item_open_dir), "activate", G_CALLBACK(cb_rstto_open_dir), navigator);
 	g_signal_connect(G_OBJECT(menu_item_help_about), "activate", G_CALLBACK(cb_rstto_help_about), window);
 
-	/* g_signal_connect(G_OBJECT(window), "window-state-event", G_CALLBACK(cb_rstto_fullscreen), viewer);*/
+	g_signal_connect(G_OBJECT(menu_item_view_fs), "activate", G_CALLBACK(cb_rstto_toggle_fullscreen), window);
 
+	g_signal_connect(G_OBJECT(window), "window-state-event", G_CALLBACK(cb_rstto_fullscreen), viewer);
+
 	gtk_container_add(GTK_CONTAINER(window), main_vbox);
 
 	gtk_widget_show_all(window);
@@ -334,3 +347,35 @@
     else
         gtk_window_set_title(window, PACKAGE_STRING);
 }
+
+static void
+cb_rstto_fullscreen(GtkWidget *widget, GdkEventWindowState *event, RsttoPictureViewer *viewer)
+{
+    g_print("%x\n", event->new_window_state);
+    if(event->new_window_state & GDK_WINDOW_STATE_FULLSCREEN)
+    {
+        window_fullscreen = TRUE;
+        gtk_widget_hide(menu_bar);
+        gtk_widget_hide(image_tool_bar);
+        gtk_widget_hide(app_tool_bar);
+        gtk_widget_hide(status_bar);
+        rstto_picture_viewer_fit_scale(viewer);
+    }
+    else
+    {
+        window_fullscreen = FALSE;
+        gtk_widget_show(menu_bar);
+        gtk_widget_show(image_tool_bar);
+        gtk_widget_show(app_tool_bar);
+        gtk_widget_show(status_bar);
+    }
+}
+
+static void
+cb_rstto_toggle_fullscreen(GtkToolItem *item, GtkWindow *window)
+{
+    if(window_fullscreen)
+        gtk_window_unfullscreen(window);
+    else
+        gtk_window_fullscreen(window);
+}




More information about the Goodies-commits mailing list