diff src/layout_util.c @ 41:6281cc38e5ca

Wed Apr 27 15:17:57 2005 John Ellis <johne@verizon.net> * bar_info.c, bar_sort.c: Update for new pref_toolbar_button args. * fullscreen.c, layout.c: Remove use of GDK_HINT_USER_SIZE as we never actually set these dimensions. Increase default size of main window. * layout_util.c: Use GTkToolbar for the main window toolbar. * pixbuf_util.[ch]: Add inline pixbufs for thumb and float icons. * rcfile.c: Add note to config file that it is autogenerated. * typedefs.h: Remove no longer used tooltip in LayoutWindow. * ui_misc.[ch]: pref_toolbar additions. * icons/icon_float.png, icons/icon_thumb.png: Icons in png format. * icons/icon_float.xpm, icons/icon_thumb.xpm: Remove xpm versions. * icons/Makefile.am: Add above icons to inline pixbuf list. ##### Note: GQview CVS on sourceforge is not always up to date, please use ##### ##### an offical release when making enhancements and translation updates. #####
author gqview
date Wed, 27 Apr 2005 19:29:15 +0000
parents 147f4c4b9025
children a4c1b7014e6e
line wrap: on
line diff
--- a/src/layout_util.c	Sat Apr 16 16:26:49 2005 +0000
+++ b/src/layout_util.c	Wed Apr 27 19:29:15 2005 +0000
@@ -37,9 +37,6 @@
 
 #include <gdk/gdkkeysyms.h> /* for keyboard values */
 
-#include "icons/icon_thumb.xpm"
-#include "icons/icon_float.xpm"
-
 
 #define MENU_EDIT_ACTION_OFFSET 16
 
@@ -471,17 +468,6 @@
 	layout_views_set(lw, lw->tree_view, (gtk_radio_action_get_current_value(action) == 1));
 }
 
-#if 0
-static void layout_menu_icon_cb(gpointer data, guint action, GtkWidget *widget)
-{
-	LayoutWindow *lw = data;
-
-	if (!GTK_CHECK_MENU_ITEM(widget)->active) return;
-
-	layout_views_set(lw, lw->tree_view, TRUE);
-}
-#endif
-
 static void layout_menu_tree_cb(GtkToggleAction *action, gpointer data)
 {
 	LayoutWindow *lw = data;
@@ -980,7 +966,7 @@
 {
 	LayoutWindow *lw = data;
 
-	layout_thumb_set(lw, GTK_TOGGLE_BUTTON(widget)->active);
+	layout_thumb_set(lw, gtk_toggle_tool_button_get_active(GTK_TOGGLE_TOOL_BUTTON(widget)));
 }
 
 static void layout_button_home_cb(GtkWidget *widget, gpointer data)
@@ -1038,75 +1024,50 @@
 	layout_tools_float_toggle(lw);
 }
 
-GtkWidget *layout_button(GtkWidget *box, gchar **pixmap_data, const gchar *stock_id, gint toggle,
-			 GtkTooltips *tooltips, const gchar *tip_text,
-			 GCallback func, gpointer data)
+static void layout_button_custom_icon(GtkWidget *button, const gchar *key)
 {
-	GtkWidget *button;
 	GtkWidget *icon;
-
-	if (toggle)
-		{
-		button = gtk_toggle_button_new();
-		}
-	else
-		{
-		button = gtk_button_new();
-		}
+	GdkPixbuf *pixbuf;
 
-	g_signal_connect(G_OBJECT(button), "clicked", func, data);
-	gtk_box_pack_start(GTK_BOX(box), button, FALSE, FALSE, 0);
-	gtk_widget_show(button);
-	gtk_tooltips_set_tip(tooltips, button, tip_text, NULL);
+	pixbuf = pixbuf_inline(key);
+	if (!pixbuf) return;
 
-	if (stock_id)
-		{
-		icon = gtk_image_new_from_stock(stock_id, GTK_ICON_SIZE_BUTTON);
-		}
-	else
-		{
-		GdkPixbuf *pixbuf;
+	icon = gtk_image_new_from_pixbuf(pixbuf);
+	g_object_unref(pixbuf);
 
-		pixbuf = gdk_pixbuf_new_from_xpm_data((const char **)pixmap_data);
-		icon = gtk_image_new_from_pixbuf(pixbuf);
-		gdk_pixbuf_unref(pixbuf);
-		}
-
-	gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
-
-	gtk_container_add(GTK_CONTAINER(button), icon);
+	pref_toolbar_button_set_icon(button, icon, NULL);
 	gtk_widget_show(icon);
-
-	return button;
 }
 
 GtkWidget *layout_button_bar(LayoutWindow *lw)
 {
 	GtkWidget *box;
-	GtkTooltips *tooltips;
+	GtkWidget *button;
+
+	box =  pref_toolbar_new(NULL, GTK_TOOLBAR_ICONS);
 
-	tooltips = lw->tooltips;
-
-	box = gtk_hbox_new(FALSE, 0);
+	button = pref_toolbar_button(box, NULL, _("_Thumbnails"), TRUE,
+				     _("Show thumbnails"), G_CALLBACK(layout_button_thumb_cb), lw);
+	layout_button_custom_icon(button, PIXBUF_INLINE_ICON_THUMB);
+	lw->thumb_button = button;
 
-	lw->thumb_button = layout_button(box, (gchar **)icon_thumb_xpm, NULL, TRUE,
-		      tooltips, _("Show thumbnails"), G_CALLBACK(layout_button_thumb_cb), lw);
-	layout_button(box, NULL, GTK_STOCK_HOME, FALSE,
-		      tooltips, _("Change to home folder"), G_CALLBACK(layout_button_home_cb), lw);
-	layout_button(box, NULL, GTK_STOCK_REFRESH, FALSE,
-		      tooltips, _("Refresh file list"), G_CALLBACK(layout_button_refresh_cb), lw);
-	layout_button(box, NULL, GTK_STOCK_ZOOM_IN, FALSE,
-		      tooltips, _("Zoom in"), G_CALLBACK(layout_button_zoom_in_cb), lw);
-	layout_button(box, NULL, GTK_STOCK_ZOOM_OUT, FALSE,
-		      tooltips, _("Zoom out"), G_CALLBACK(layout_button_zoom_out_cb), lw);
-	layout_button(box, NULL, GTK_STOCK_ZOOM_FIT, FALSE,
-		      tooltips, _("Fit image to window"), G_CALLBACK(layout_button_zoom_fit_cb), lw);
-	layout_button(box, NULL, GTK_STOCK_ZOOM_100, FALSE,
-		      tooltips, _("Set zoom 1:1"), G_CALLBACK(layout_button_zoom_1_1_cb), lw);
-	layout_button(box, NULL, GTK_STOCK_PREFERENCES, FALSE,
-		      tooltips, _("Configure options"), G_CALLBACK(layout_button_config_cb), lw);
-	layout_button(box, (gchar **)icon_float_xpm, NULL, FALSE,
-		      tooltips, _("Float Controls"), G_CALLBACK(layout_button_float_cb), lw);
+	pref_toolbar_button(box, GTK_STOCK_HOME, NULL, FALSE,
+			    _("Change to home folder"), G_CALLBACK(layout_button_home_cb), lw);
+	pref_toolbar_button(box, GTK_STOCK_REFRESH, NULL, FALSE,
+			    _("Refresh file list"), G_CALLBACK(layout_button_refresh_cb), lw);
+	pref_toolbar_button(box, GTK_STOCK_ZOOM_IN, NULL, FALSE,
+			    _("Zoom in"), G_CALLBACK(layout_button_zoom_in_cb), lw);
+	pref_toolbar_button(box, GTK_STOCK_ZOOM_OUT, NULL, FALSE,
+			    _("Zoom out"), G_CALLBACK(layout_button_zoom_out_cb), lw);
+	pref_toolbar_button(box, GTK_STOCK_ZOOM_FIT, NULL, FALSE,
+			    _("Fit image to window"), G_CALLBACK(layout_button_zoom_fit_cb), lw);
+	pref_toolbar_button(box, GTK_STOCK_ZOOM_100, NULL, FALSE,
+			    _("Set zoom 1:1"), G_CALLBACK(layout_button_zoom_1_1_cb), lw);
+	pref_toolbar_button(box, GTK_STOCK_PREFERENCES, NULL, FALSE,
+			    _("Configure options"), G_CALLBACK(layout_button_config_cb), lw);
+	button = pref_toolbar_button(box, NULL, _("_Float"), FALSE,
+				     _("Float Controls"), G_CALLBACK(layout_button_float_cb), lw);
+	layout_button_custom_icon(button, PIXBUF_INLINE_ICON_FLOAT);
 
 	return box;
 }
@@ -1155,7 +1116,7 @@
 	gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->thumbs_enabled);
 	g_object_set(action, "sensitive", !lw->icon_view, NULL);
 
-	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lw->thumb_button), lw->thumbs_enabled);
+	gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(lw->thumb_button), lw->thumbs_enabled);
 	gtk_widget_set_sensitive(lw->thumb_button, !lw->icon_view);
 }