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

Stephan Arts stephan at xfce.org
Tue Aug 7 22:27:08 CEST 2007


Author: stephan
Date: 2007-08-07 20:27:08 +0000 (Tue, 07 Aug 2007)
New Revision: 2970

Modified:
   ristretto/trunk/src/main.c
   ristretto/trunk/src/thumbnail_viewer.c
   ristretto/trunk/src/thumbnail_viewer.h
Log:
Add Thumbnail viewer orientation switching



Modified: ristretto/trunk/src/main.c
===================================================================
--- ristretto/trunk/src/main.c	2007-08-07 18:21:30 UTC (rev 2969)
+++ ristretto/trunk/src/main.c	2007-08-07 20:27:08 UTC (rev 2970)
@@ -61,6 +61,13 @@
 cb_rstto_toggle_fullscreen(GtkToolItem *item, GtkWindow *window);
 
 static void
+cb_rstto_show_tv_v(GtkWidget *widget, RsttoThumbnailViewer *viewer);
+static void
+cb_rstto_show_tv_h(GtkWidget *widget, RsttoThumbnailViewer *viewer);
+static void
+cb_rstto_hide_tv(GtkWidget *widget, RsttoThumbnailViewer *viewer);
+
+static void
 cb_rstto_key_press_event(GtkWidget *widget, GdkEventKey *event, RsttoNavigator *navigator);
 
 static void
@@ -76,6 +83,10 @@
 static GtkWidget *menu_item_play;
 static GtkWidget *menu_item_pause;
 
+static GtkWidget *main_hbox;
+static GtkWidget *main_vbox1;
+static GtkWidget *thumbnail_viewer;
+
 int main(int argc, char **argv)
 {
     ThunarVfsPath *path = NULL;
@@ -115,9 +126,9 @@
 	GtkWidget *s_window = gtk_scrolled_window_new(NULL,NULL);
 	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 *main_vbox1 = gtk_vbox_new(0, FALSE);
-    GtkWidget *thumbnail_viewer = rstto_thumbnail_viewer_new(navigator);
+	main_hbox = gtk_hbox_new(0, FALSE);
+    main_vbox1 = gtk_vbox_new(0, FALSE);
+    thumbnail_viewer = rstto_thumbnail_viewer_new(navigator);
     menu_bar = gtk_menu_bar_new();
 	image_tool_bar = gtk_toolbar_new();
 	app_tool_bar = gtk_toolbar_new();
@@ -142,12 +153,24 @@
 	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_tv = gtk_menu_item_new_with_mnemonic(_("Thumbnail Viewer"));
     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_tv);
     gtk_menu_shell_append(GTK_MENU_SHELL(menu_view), menu_item_view_fs);
 
+    GtkWidget *menu_tv = gtk_menu_new();
+	gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item_tv), menu_tv);
+    GtkWidget *menu_item_htv = gtk_radio_menu_item_new_with_mnemonic(NULL, _("Show Horizontally"));
+    GtkWidget *menu_item_vtv = gtk_radio_menu_item_new_with_mnemonic_from_widget(GTK_RADIO_MENU_ITEM(menu_item_htv), _("Show Vertically"));
+    GtkWidget *menu_item_ntv = gtk_radio_menu_item_new_with_mnemonic_from_widget(GTK_RADIO_MENU_ITEM(menu_item_htv), _("Hide"));
+
+    gtk_menu_shell_append(GTK_MENU_SHELL(menu_tv), menu_item_htv);
+    gtk_menu_shell_append(GTK_MENU_SHELL(menu_tv), menu_item_vtv);
+    gtk_menu_shell_append(GTK_MENU_SHELL(menu_tv), menu_item_ntv);
+
     GtkWidget *menu_item_go = gtk_menu_item_new_with_mnemonic(_("_Go"));
 
     GtkWidget *menu_item_first = gtk_image_menu_item_new_from_stock(GTK_STOCK_GOTO_FIRST, NULL);
@@ -209,7 +232,7 @@
 	gtk_box_pack_start(GTK_BOX(main_hbox), main_vbox1, TRUE, TRUE, 0);
 
 	gtk_box_pack_start(GTK_BOX(main_vbox1), s_window, TRUE, TRUE, 0);
-	gtk_box_pack_start(GTK_BOX(main_hbox), thumbnail_viewer, FALSE, TRUE, 0);
+	gtk_box_pack_start(GTK_BOX(main_vbox1), thumbnail_viewer, FALSE, TRUE, 0);
 
 	gtk_box_pack_start(GTK_BOX(main_vbox), menu_bar, FALSE, TRUE, 0);
 	gtk_box_pack_start(GTK_BOX(main_vbox), app_tool_bar, FALSE, TRUE, 0);
@@ -246,6 +269,10 @@
 	g_signal_connect(G_OBJECT(menu_item_first), "activate", G_CALLBACK(cb_rstto_first), navigator);
 	g_signal_connect(G_OBJECT(menu_item_last), "activate", G_CALLBACK(cb_rstto_last), navigator);
 
+	g_signal_connect(G_OBJECT(menu_item_vtv), "activate", G_CALLBACK(cb_rstto_show_tv_v), thumbnail_viewer);
+	g_signal_connect(G_OBJECT(menu_item_htv), "activate", G_CALLBACK(cb_rstto_show_tv_h), thumbnail_viewer);
+	g_signal_connect(G_OBJECT(menu_item_ntv), "activate", G_CALLBACK(cb_rstto_hide_tv), thumbnail_viewer);
+
 	g_signal_connect(G_OBJECT(menu_item_play), "activate", G_CALLBACK(cb_rstto_toggle_play), navigator);
 	g_signal_connect(G_OBJECT(menu_item_pause), "activate", G_CALLBACK(cb_rstto_toggle_play), navigator);
 	g_signal_connect(G_OBJECT(menu_item_view_fs), "activate", G_CALLBACK(cb_rstto_toggle_fullscreen), window);
@@ -498,3 +525,31 @@
     }
 }
 
+
+static void
+cb_rstto_show_tv_v(GtkWidget *widget, RsttoThumbnailViewer *viewer)
+{
+    GtkWidget *parent = gtk_widget_get_parent(GTK_WIDGET(viewer));
+    gtk_widget_ref(GTK_WIDGET(viewer));
+    gtk_container_remove(GTK_CONTAINER(parent), GTK_WIDGET(viewer));
+    rstto_thumbnail_viewer_set_orientation(viewer, GTK_ORIENTATION_VERTICAL);
+	gtk_box_pack_start(GTK_BOX(main_hbox), thumbnail_viewer, FALSE, TRUE, 0);
+    gtk_widget_show(GTK_WIDGET(viewer));
+}
+
+static void
+cb_rstto_show_tv_h(GtkWidget *widget, RsttoThumbnailViewer *viewer)
+{
+    GtkWidget *parent = gtk_widget_get_parent(GTK_WIDGET(viewer));
+    gtk_widget_ref(GTK_WIDGET(viewer));
+    gtk_container_remove(GTK_CONTAINER(parent), GTK_WIDGET(viewer));
+    rstto_thumbnail_viewer_set_orientation(viewer, GTK_ORIENTATION_HORIZONTAL);
+    gtk_box_pack_start(GTK_BOX(main_vbox1), thumbnail_viewer, FALSE, TRUE, 0);
+    gtk_widget_show(GTK_WIDGET(viewer));
+}
+
+static void
+cb_rstto_hide_tv(GtkWidget *widget, RsttoThumbnailViewer *viewer)
+{
+    gtk_widget_hide(GTK_WIDGET(viewer));
+}

Modified: ristretto/trunk/src/thumbnail_viewer.c
===================================================================
--- ristretto/trunk/src/thumbnail_viewer.c	2007-08-07 18:21:30 UTC (rev 2969)
+++ ristretto/trunk/src/thumbnail_viewer.c	2007-08-07 20:27:08 UTC (rev 2970)
@@ -49,8 +49,6 @@
 rstto_thumbnail_viewer_size_allocate(GtkWidget *, GtkAllocation *);
 static void
 rstto_thumbnail_viewer_realize(GtkWidget *);
-static void
-rstto_thumbnail_viewer_unrealize(GtkWidget *);
 static gboolean 
 rstto_thumbnail_viewer_expose(GtkWidget *, GdkEventExpose *);
 
@@ -100,7 +98,7 @@
     gtk_widget_set_events (GTK_WIDGET(viewer),
                            GDK_BUTTON_PRESS_MASK);
     g_signal_connect(G_OBJECT(viewer), "button_press_event", G_CALLBACK(cb_rstto_thumbnailer_button_press_event), NULL);
-    viewer->priv->orientation = GTK_ORIENTATION_VERTICAL;
+    viewer->priv->orientation = GTK_ORIENTATION_HORIZONTAL;
 }
 
 static void
@@ -115,7 +113,6 @@
 	parent_class = g_type_class_peek_parent(viewer_class);
 
 	widget_class->realize = rstto_thumbnail_viewer_realize;
-	widget_class->unrealize = rstto_thumbnail_viewer_unrealize;
 	widget_class->expose_event = rstto_thumbnail_viewer_expose;
 
 	widget_class->size_request = rstto_thumbnail_viewer_size_request;
@@ -199,11 +196,6 @@
 	gtk_style_set_background (widget->style, widget->window, GTK_STATE_ACTIVE);
 }
 
-static void
-rstto_thumbnail_viewer_unrealize(GtkWidget *widget)
-{
-}
-
 static gboolean
 rstto_thumbnail_viewer_expose(GtkWidget *widget, GdkEventExpose *event)
 {
@@ -487,3 +479,15 @@
         rstto_navigator_set_file(viewer->priv->navigator, n);
     }
 }
+
+void
+rstto_thumbnail_viewer_set_orientation (RsttoThumbnailViewer *viewer, GtkOrientation orientation)
+{
+    viewer->priv->orientation = orientation;
+}
+
+GtkOrientation
+rstto_thumbnail_viewer_get_orientation (RsttoThumbnailViewer *viewer)
+{
+    return viewer->priv->orientation;
+}

Modified: ristretto/trunk/src/thumbnail_viewer.h
===================================================================
--- ristretto/trunk/src/thumbnail_viewer.h	2007-08-07 18:21:30 UTC (rev 2969)
+++ ristretto/trunk/src/thumbnail_viewer.h	2007-08-07 20:27:08 UTC (rev 2970)
@@ -60,6 +60,9 @@
 
 GtkWidget *rstto_thumbnail_viewer_new();
 
+void       rstto_thumbnail_viewer_set_orientation (RsttoThumbnailViewer *, GtkOrientation);
+GtkOrientation  rstto_thumbnail_viewer_get_orientation (RsttoThumbnailViewer *);
+
 G_END_DECLS
 
 #endif /* __RISTRETTO_THUMBNAIL_VIEWER_H__ */




More information about the Goodies-commits mailing list