SF.net SVN: geany:[3329] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Sat Dec 6 11:45:51 UTC 2008


Revision: 3329
          http://geany.svn.sourceforge.net/geany/?rev=3329&view=rev
Author:   eht16
Date:     2008-12-06 11:45:48 +0000 (Sat, 06 Dec 2008)

Log Message:
-----------
Add new stock icon GEANY_STOCK_SAVE_ALL.
Remove code to manually update the size of the 'Save All' toolbar icon and use the GEANY_STOCK_SAVE_ALL stock icon instead.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/callbacks.c
    trunk/src/geany.h
    trunk/src/main.c
    trunk/src/prefs.c
    trunk/src/toolbar.c
    trunk/src/toolbar.h
    trunk/src/ui_utils.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2008-12-06 11:10:06 UTC (rev 3328)
+++ trunk/ChangeLog	2008-12-06 11:45:48 UTC (rev 3329)
@@ -18,6 +18,11 @@
    Add GeanyMenubuttonAction and GeanyEntryAction as GtkAction
    subclasses to have menu buttons and text entries in the toolbar.
    Change the Goto line toolbar item back to a plain text entry again.
+ * src/callbacks.c, src/geany.h, src/main.c, src/prefs.c, src/toolbar.c,
+   src/toolbar.h, src/ui_utils.c:
+   Add new stock icon GEANY_STOCK_SAVE_ALL.
+   Remove code to manually update the size of the 'Save All' toolbar
+   icon and use the GEANY_STOCK_SAVE_ALL stock icon instead.
 
 
 2008-12-05  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>

Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c	2008-12-06 11:10:06 UTC (rev 3328)
+++ trunk/src/callbacks.c	2008-12-06 11:45:48 UTC (rev 3329)
@@ -609,7 +609,7 @@
 	if (ignore_toolbar_toggle) return;
 
 	toolbar_prefs.icon_size = GTK_ICON_SIZE_LARGE_TOOLBAR;
-	toolbar_update_icons(GTK_ICON_SIZE_LARGE_TOOLBAR);
+	gtk_toolbar_set_icon_size(GTK_TOOLBAR(main_widgets.toolbar), GTK_ICON_SIZE_LARGE_TOOLBAR);
 }
 
 
@@ -620,7 +620,7 @@
 	if (ignore_toolbar_toggle) return;
 
 	toolbar_prefs.icon_size = GTK_ICON_SIZE_SMALL_TOOLBAR;
-	toolbar_update_icons(GTK_ICON_SIZE_SMALL_TOOLBAR);
+	gtk_toolbar_set_icon_size(GTK_TOOLBAR(main_widgets.toolbar), GTK_ICON_SIZE_SMALL_TOOLBAR);
 }
 
 

Modified: trunk/src/geany.h
===================================================================
--- trunk/src/geany.h	2008-12-06 11:10:06 UTC (rev 3328)
+++ trunk/src/geany.h	2008-12-06 11:45:48 UTC (rev 3329)
@@ -106,7 +106,9 @@
 	GIGABYTE = (MEGABYTE*1024)
 };
 
+#define GEANY_STOCK_SAVE_ALL "geany-save-all"
 
+
 /* Useful for some variable argument list functions, e.g. in utils.h */
 #if ! GLIB_CHECK_VERSION(2, 8, 0)
 #define G_GNUC_NULL_TERMINATED

Modified: trunk/src/main.c
===================================================================
--- trunk/src/main.c	2008-12-06 11:10:06 UTC (rev 3328)
+++ trunk/src/main.c	2008-12-06 11:45:48 UTC (rev 3329)
@@ -208,7 +208,7 @@
 	{
 		gtk_toolbar_set_icon_size(GTK_TOOLBAR(main_widgets.toolbar), toolbar_prefs.icon_size);
 	}
-	toolbar_update_icons(toolbar_prefs.icon_size);
+	gtk_toolbar_set_icon_size(GTK_TOOLBAR(main_widgets.toolbar), toolbar_prefs.icon_size);
 
 	/* line number and markers margin are by default enabled */
 	if (! editor_prefs.show_markers_margin)

Modified: trunk/src/prefs.c
===================================================================
--- trunk/src/prefs.c	2008-12-06 11:10:06 UTC (rev 3328)
+++ trunk/src/prefs.c	2008-12-06 11:45:48 UTC (rev 3329)
@@ -1096,7 +1096,7 @@
 		/* apply the changes made */
 		ui_statusbar_showhide(interface_prefs.statusbar_visible);
 		treeviews_openfiles_update_all(); /* to update if full path setting has changed */
-		toolbar_update_icons(toolbar_prefs.icon_size);
+		gtk_toolbar_set_icon_size(GTK_TOOLBAR(main_widgets.toolbar), toolbar_prefs.icon_size);
 		gtk_toolbar_set_style(GTK_TOOLBAR(main_widgets.toolbar), toolbar_prefs.icon_style);
 		ui_sidebar_show_hide();
 		gtk_notebook_set_show_tabs(GTK_NOTEBOOK(main_widgets.notebook), interface_prefs.show_notebook_tabs);

Modified: trunk/src/toolbar.c
===================================================================
--- trunk/src/toolbar.c	2008-12-06 11:10:06 UTC (rev 3328)
+++ trunk/src/toolbar.c	2008-12-06 11:45:48 UTC (rev 3329)
@@ -48,7 +48,7 @@
  * Fields: name, stock_id, label, accelerator, tooltip, callback */
 const GtkActionEntry ui_entries[] = {
 	{ "Save", GTK_STOCK_SAVE, NULL, NULL, N_("Save the current file"), G_CALLBACK(on_toolbutton_save_clicked) },
-	{ "SaveAll", GTK_STOCK_SAVE, N_("Save All"), NULL, N_("Save all open files"), G_CALLBACK(on_save_all1_activate) },
+	{ "SaveAll", GEANY_STOCK_SAVE_ALL, N_("Save All"), NULL, N_("Save all open files"), G_CALLBACK(on_save_all1_activate) },
 	{ "Reload", GTK_STOCK_REVERT_TO_SAVED, NULL, NULL, N_("Reload the current file from disk"), G_CALLBACK(on_toolbutton_reload_clicked) },
 	{ "Close", GTK_STOCK_CLOSE, NULL, NULL, N_("Close the current file"), G_CALLBACK(on_toolbutton_close_clicked) },
 	{ "Cut", GTK_STOCK_CUT, NULL, NULL, N_("Cut the current selection"), G_CALLBACK(on_cut1_activate) },
@@ -239,30 +239,6 @@
 }
 
 
-/* TODO: remove this code and use stock icons instead */
-void toolbar_update_icons(GtkIconSize size)
-{
-	GtkWidget *button_image = NULL;
-	GtkWidget *widget = NULL;
-	GtkWidget *oldwidget = NULL;
-
-	/* destroy old widget */
-	widget = toolbar_get_widget_by_name("SaveAll");
-	if (widget == NULL)
-		return;
-
-	oldwidget = gtk_tool_button_get_icon_widget(GTK_TOOL_BUTTON(widget));
-	if (oldwidget && GTK_IS_WIDGET(oldwidget))
-		gtk_widget_destroy(oldwidget);
-	/* create new widget */
-	button_image = ui_new_image_from_inline(GEANY_IMAGE_SAVE_ALL, FALSE);
-	gtk_widget_show(button_image);
-	gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(widget), button_image);
-
-	gtk_toolbar_set_icon_size(GTK_TOOLBAR(main_widgets.toolbar), size);
-}
-
-
 /*  Returns the position for adding new toolbar items. The returned position can be used
  *  to add new toolbar items with @c gtk_toolbar_insert(). The toolbar object can be accessed
  *  with @a geany->main_widgets->toolbar.

Modified: trunk/src/toolbar.h
===================================================================
--- trunk/src/toolbar.h	2008-12-06 11:10:06 UTC (rev 3328)
+++ trunk/src/toolbar.h	2008-12-06 11:45:48 UTC (rev 3329)
@@ -42,8 +42,6 @@
 
 GtkAction *toolbar_get_action_by_name(const gchar *name);
 
-void toolbar_update_icons(GtkIconSize size);
-
 gint toolbar_get_insert_position(void);
 
 void toolbar_add_config_file_menu_item(void);

Modified: trunk/src/ui_utils.c
===================================================================
--- trunk/src/ui_utils.c	2008-12-06 11:10:06 UTC (rev 3328)
+++ trunk/src/ui_utils.c	2008-12-06 11:45:48 UTC (rev 3329)
@@ -72,6 +72,16 @@
 widgets;
 
 
+/* Local stock item struct to extend the GtkStockItem structure by an image id which is used
+ * as the icon */
+typedef struct
+{
+	GtkStockItem item;
+	guint image_id;
+}
+GeanyStockItem;
+
+
 static void update_recent_menu(void);
 static void recent_file_loaded(const gchar *utf8_filename);
 static void recent_file_activate_cb(GtkMenuItem *menuitem, gpointer user_data);
@@ -808,21 +818,18 @@
 {
 	switch(img)
 	{
-		case GEANY_IMAGE_SMALL_CROSS: return gdk_pixbuf_new_from_inline(-1, close_small_inline, FALSE, NULL); break;
-		case GEANY_IMAGE_LOGO: return gdk_pixbuf_new_from_inline(-1, aladin_inline, FALSE, NULL); break;
+		case GEANY_IMAGE_LOGO:
+			return gdk_pixbuf_new_from_inline(-1, aladin_inline, FALSE, NULL);
+			break;
 		case GEANY_IMAGE_SAVE_ALL:
 		{
-			if ((toolbar_prefs.icon_size == GTK_ICON_SIZE_SMALL_TOOLBAR) || small_img)
-			{
-				return gdk_pixbuf_scale_simple(gdk_pixbuf_new_from_inline(-1, save_all_inline, FALSE, NULL),
-                                             16, 16, GDK_INTERP_HYPER);
-			}
-			else
-			{
-				return gdk_pixbuf_new_from_inline(-1, save_all_inline, FALSE, NULL);
-			}
+			return gdk_pixbuf_new_from_inline(-1, save_all_inline, FALSE, NULL);
 			break;
 		}
+/* unused
+		case GEANY_IMAGE_SMALL_CROSS:
+			return gdk_pixbuf_new_from_inline(-1, close_small_inline, FALSE, NULL);
+			break;
 		case GEANY_IMAGE_NEW_ARROW:
 		{
 			if ((toolbar_prefs.icon_size == GTK_ICON_SIZE_SMALL_TOOLBAR) || small_img)
@@ -836,10 +843,10 @@
 			}
 			break;
 		}
-		default: return NULL;
+*/
+		default:
+			return NULL;
 	}
-
-	/*return gtk_image_new_from_pixbuf(pixbuf);*/
 }
 
 
@@ -1560,8 +1567,37 @@
 }
 
 
+static void add_stock_items(void)
+{
+	GtkIconSet *icon_set;
+	GtkIconFactory *factory = gtk_icon_factory_new();
+	GdkPixbuf *pb;
+	gsize i;
+	GeanyStockItem items[] =
+	{
+		{ { GEANY_STOCK_SAVE_ALL, _("Save All"), 0, 0, GETTEXT_PACKAGE}, GEANY_IMAGE_SAVE_ALL }
+	};
+
+	for (i = 0; i < G_N_ELEMENTS(items); i++)
+	{
+		pb = ui_new_pixbuf_from_inline(items[i].image_id, FALSE);
+		icon_set = gtk_icon_set_new_from_pixbuf(pb);
+
+		gtk_icon_factory_add(factory, items[i].item.stock_id, icon_set);
+
+		gtk_icon_set_unref(icon_set);
+		g_object_unref(pb);
+	}
+	gtk_stock_add((GtkStockItem *) items, G_N_ELEMENTS(items));
+	gtk_icon_factory_add_default(factory);
+	g_object_unref(factory);
+}
+
+
 void ui_init(void)
 {
+	add_stock_items();
+
 	ui_widgets.statusbar = lookup_widget(main_widgets.window, "statusbar");
 	ui_widgets.print_page_setup = lookup_widget(main_widgets.window, "page_setup1");
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list