SF.net SVN: geany:[3479] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Sat Jan 17 17:59:23 UTC 2009


Revision: 3479
          http://geany.svn.sourceforge.net/geany/?rev=3479&view=rev
Author:   eht16
Date:     2009-01-17 17:59:20 +0000 (Sat, 17 Jan 2009)

Log Message:
-----------
Add 'Build' toolbar button with a submenu for Make actions.
Make use of ui_image_menu_item_new() for some menu items.
Remove tooltips from menu items.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/TODO
    trunk/doc/geany.txt
    trunk/src/build.c
    trunk/src/build.h
    trunk/src/images.c
    trunk/src/toolbar.c
    trunk/src/ui_utils.c
    trunk/src/ui_utils.h

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2009-01-17 13:11:06 UTC (rev 3478)
+++ trunk/ChangeLog	2009-01-17 17:59:20 UTC (rev 3479)
@@ -16,6 +16,11 @@
    Properly fix parsing of compiler error messages.
  * data/filetypes.nsis:
    Update keywords lists.
+ * doc/geany.txt, src/build.c, src/build.h, src/images.c, src/toolbar.c,
+   src/ui_utils.c, src/ui_utils.h:
+   Add 'Build' toolbar button with a submenu for Make actions.
+   Make use of ui_image_menu_item_new() for some menu items.
+   Remove tooltips from menu items.
 
 
 2009-01-16  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>

Modified: trunk/TODO
===================================================================
--- trunk/TODO	2009-01-17 13:11:06 UTC (rev 3478)
+++ trunk/TODO	2009-01-17 17:59:20 UTC (rev 3479)
@@ -13,7 +13,6 @@
 	o configurable filetype and project make commands (e.g. using
 	  bud for D)
 	o recent projects menu
-	o improve Compile toolbar button for Make (drop down radio list?)
 	o MRU documents switching
 	o (support for adding plugin filetypes - SCI_LOADLEXERLIBRARY?)
 	o (selectable menu of arguments to use for Make, from Make Custom)

Modified: trunk/doc/geany.txt
===================================================================
--- trunk/doc/geany.txt	2009-01-17 13:11:06 UTC (rev 3478)
+++ trunk/doc/geany.txt	2009-01-17 17:59:20 UTC (rev 3479)
@@ -3391,6 +3391,9 @@
 NavBack            Navigate back a location
 NavFor             Navigate forward a location
 Compile            Compile the current file
+Build              Build the current file, includes also a submenu for Make commands. Geany
+                   remembers the last chosen action from the submenu and uses this as default
+                   action when the button itself is clicked.
 Run                Run or view the current file
 Color              Open a color chooser dialog, to interactively pick colors from a palette
 ZoomIn             Zoom in the text

Modified: trunk/src/build.c
===================================================================
--- trunk/src/build.c	2009-01-17 13:11:06 UTC (rev 3478)
+++ trunk/src/build.c	2009-01-17 17:59:20 UTC (rev 3479)
@@ -57,6 +57,7 @@
 #include "editor.h"
 #include "win32.h"
 #include "toolbar.h"
+#include "geanymenubuttonaction.h"
 
 
 GeanyBuildInfo build_info = {GBO_COMPILE, 0, NULL, GEANY_FILETYPES_NONE, NULL};
@@ -83,6 +84,8 @@
 	LATEX_CMD_VIEW_PDF
 };
 
+static GeanyBuildType last_toolbutton_action = GBO_BUILD;
+
 static BuildMenuItems default_menu_items =
 	{NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL};
 static BuildMenuItems latex_menu_items =
@@ -93,6 +96,13 @@
 {
 	GtkWidget	*run_button;
 	GtkWidget	*compile_button;
+	GtkWidget	*build_button;
+
+	GtkWidget	*toolitem_build;
+	GtkWidget	*toolitem_make_all;
+	GtkWidget	*toolitem_make_custom;
+	GtkWidget	*toolitem_make_object;
+	GtkWidget	*toolitem_set_args;
 }
 widgets;
 
@@ -960,31 +970,24 @@
 
 static void create_build_menu_gen(BuildMenuItems *menu_items)
 {
-	GtkWidget *menu, *item = NULL, *image, *separator;
+	GtkWidget *menu, *item = NULL, *separator;
 	GtkAccelGroup *accel_group = gtk_accel_group_new();
-	GtkTooltips *tooltips = GTK_TOOLTIPS(ui_lookup_widget(main_widgets.window, "tooltips"));
 	GeanyKeyGroup *group = g_ptr_array_index(keybinding_groups, GEANY_KEY_GROUP_BUILD);
 
 	menu = gtk_menu_new();
 
 	/* compile the code */
-	item = gtk_image_menu_item_new_with_mnemonic(_("_Compile"));
+	item = ui_image_menu_item_new(GTK_STOCK_CONVERT, _("_Compile"));
 	gtk_widget_show(item);
 	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file"), NULL);
 	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_COMPILE, item);
-	image = gtk_image_new_from_stock("gtk-convert", GTK_ICON_SIZE_MENU);
-	gtk_widget_show(image);
-	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
 	g_signal_connect(item, "activate", G_CALLBACK(on_build_compile_activate), NULL);
 	menu_items->item_compile = item;
 
 	/* build the code */
-	item = gtk_image_menu_item_new_with_mnemonic(_("_Build"));
+	item = ui_image_menu_item_new(GEANY_STOCK_BUILD, _("_Build"));
 	gtk_widget_show(item);
 	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item,
-				_("Builds the current file (generate an executable file)"), NULL);
 	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_LINK, item);
 	g_signal_connect(item, "activate", G_CALLBACK(on_build_build_activate), NULL);
 	menu_items->item_link = item;
@@ -997,8 +1000,6 @@
 	item = gtk_image_menu_item_new_with_mnemonic(_("_Make All"));
 	gtk_widget_show(item);
 	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Builds the current file with the "
-										   "make tool and the default target"), NULL);
 	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_MAKE, item);
 	g_signal_connect(item, "activate", G_CALLBACK(on_build_make_activate),
 		GINT_TO_POINTER(GBO_MAKE_ALL));
@@ -1009,8 +1010,6 @@
 	gtk_widget_show(item);
 	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_MAKEOWNTARGET, item);
 	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Builds the current file with the "
-										   "make tool and the specified target"), NULL);
 	g_signal_connect(item, "activate", G_CALLBACK(on_build_make_activate),
 		GINT_TO_POINTER(GBO_MAKE_CUSTOM));
 	menu_items->item_make_custom = item;
@@ -1020,8 +1019,6 @@
 	gtk_widget_show(item);
 	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_MAKEOBJECT, item);
 	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file using the "
-										   "make tool"), NULL);
 	g_signal_connect(item, "activate", G_CALLBACK(on_build_make_activate),
 		GINT_TO_POINTER(GBO_MAKE_OBJECT));
 	menu_items->item_make_object = item;
@@ -1053,7 +1050,6 @@
 	item = gtk_image_menu_item_new_from_stock("gtk-execute", accel_group);
 	gtk_widget_show(item);
 	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Run or view the current file"), NULL);
 	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_RUN, item);
 	g_signal_connect(item, "activate", G_CALLBACK(on_build_execute_activate), NULL);
 	menu_items->item_exec = item;
@@ -1064,16 +1060,10 @@
 	gtk_widget_set_sensitive(separator, FALSE);
 
 	/* arguments */
-	item = gtk_image_menu_item_new_with_mnemonic(_("_Set Includes and Arguments"));
+	item = ui_image_menu_item_new(GTK_STOCK_PREFERENCES, _("_Set Includes and Arguments"));
 	gtk_widget_show(item);
 	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_OPTIONS, item);
 	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item,
-				_("Sets the includes and library paths for the compiler and "
-				  "the program arguments for execution"), NULL);
-	image = gtk_image_new_from_stock("gtk-preferences", GTK_ICON_SIZE_MENU);
-	gtk_widget_show(image);
-	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
 	g_signal_connect(item, "activate", G_CALLBACK(on_build_arguments_activate), NULL);
 	menu_items->item_set_args = item;
 
@@ -1084,35 +1074,26 @@
 
 static void create_build_menu_tex(BuildMenuItems *menu_items)
 {
-	GtkWidget *menu, *item, *image, *separator;
+	GtkWidget *menu, *item, *separator;
 	GtkAccelGroup *accel_group = gtk_accel_group_new();
-	GtkTooltips *tooltips = GTK_TOOLTIPS(ui_lookup_widget(main_widgets.window, "tooltips"));
 	GeanyKeyGroup *group = g_ptr_array_index(keybinding_groups, GEANY_KEY_GROUP_BUILD);
 
 	menu = gtk_menu_new();
 
 	/* DVI */
-	item = gtk_image_menu_item_new_with_mnemonic(_("LaTeX -> _DVI"));
+	item = ui_image_menu_item_new(GTK_STOCK_CONVERT, _("LaTeX -> _DVI"));
 	gtk_widget_show(item);
 	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file into a DVI file"), NULL);
 	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_COMPILE, item);
-	image = gtk_image_new_from_stock("gtk-convert", GTK_ICON_SIZE_MENU);
-	gtk_widget_show(image);
-	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
 	g_signal_connect(item, "activate",
 				G_CALLBACK(on_build_tex_activate), GINT_TO_POINTER(LATEX_CMD_TO_DVI));
 	menu_items->item_compile = item;
 
 	/* PDF */
-	item = gtk_image_menu_item_new_with_mnemonic(_("LaTeX -> _PDF"));
+	item = ui_image_menu_item_new(GEANY_STOCK_BUILD, _("LaTeX -> _PDF"));
 	gtk_widget_show(item);
 	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Compiles the current file into a PDF file"), NULL);
 	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_LINK, item);
-	image = gtk_image_new_from_stock("gtk-convert", GTK_ICON_SIZE_MENU);
-	gtk_widget_show(image);
-	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
 	g_signal_connect(item, "activate",
 				G_CALLBACK(on_build_tex_activate), GINT_TO_POINTER(LATEX_CMD_TO_PDF));
 	menu_items->item_link = item;
@@ -1125,8 +1106,6 @@
 	item = gtk_image_menu_item_new_with_mnemonic(_("_Make All"));
 	gtk_widget_show(item);
 	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Builds the current file with the "
-										   "make tool and the default target"), NULL);
 	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_MAKE, item);
 	g_signal_connect(item, "activate", G_CALLBACK(on_build_make_activate),
 		GINT_TO_POINTER(GBO_MAKE_ALL));
@@ -1137,8 +1116,6 @@
 	gtk_widget_show(item);
 	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_MAKEOWNTARGET, item);
 	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item, _("Builds the current file with the "
-										   "make tool and the specified target"), NULL);
 	g_signal_connect(item, "activate", G_CALLBACK(on_build_make_activate),
 		GINT_TO_POINTER(GBO_MAKE_CUSTOM));
 	menu_items->item_make_custom = item;
@@ -1168,27 +1145,19 @@
 
 	/* DVI view */
 #define LATEX_VIEW_DVI_LABEL _("_View DVI File") /* used later again */
-	item = gtk_image_menu_item_new_with_mnemonic(LATEX_VIEW_DVI_LABEL);
+	item = ui_image_menu_item_new(GTK_STOCK_FIND, LATEX_VIEW_DVI_LABEL);
 	gtk_widget_show(item);
 	gtk_container_add(GTK_CONTAINER(menu), item);
 	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_RUN, item);
-	gtk_tooltips_set_tip(tooltips, item, _("Compile and view the current file"), NULL);
-	image = gtk_image_new_from_stock("gtk-find", GTK_ICON_SIZE_MENU);
-	gtk_widget_show(image);
-	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
 	g_signal_connect(item, "activate",
 					G_CALLBACK(on_build_execute_activate), GINT_TO_POINTER(LATEX_CMD_VIEW_DVI));
 	menu_items->item_exec = item;
 
 	/* PDF view */
-	item = gtk_image_menu_item_new_with_mnemonic(_("V_iew PDF File"));
+	item = ui_image_menu_item_new(GTK_STOCK_FIND, _("V_iew PDF File"));
 	gtk_widget_show(item);
 	gtk_container_add(GTK_CONTAINER(menu), item);
 	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_RUN2, item);
-	gtk_tooltips_set_tip(tooltips, item, _("Compile and view the current file"), NULL);
-	image = gtk_image_new_from_stock("gtk-find", GTK_ICON_SIZE_MENU);
-	gtk_widget_show(image);
-	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
 	g_signal_connect(item, "activate",
 					G_CALLBACK(on_build_execute_activate), GINT_TO_POINTER(LATEX_CMD_VIEW_PDF));
 	menu_items->item_exec2 = item;
@@ -1200,15 +1169,10 @@
 	gtk_widget_set_sensitive(separator, FALSE);
 
 	/* arguments */
-	item = gtk_image_menu_item_new_with_mnemonic(_("_Set Arguments"));
+	item = ui_image_menu_item_new(GTK_STOCK_PREFERENCES, _("_Set Arguments"));
 	gtk_widget_show(item);
 	GEANY_ADD_WIDGET_ACCEL(GEANY_KEYS_BUILD_OPTIONS, item);
 	gtk_container_add(GTK_CONTAINER(menu), item);
-	gtk_tooltips_set_tip(tooltips, item,
-				_("Sets the program paths and arguments"), NULL);
-	image = gtk_image_new_from_stock("gtk-preferences", GTK_ICON_SIZE_MENU);
-	gtk_widget_show(image);
-	gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image);
 	g_signal_connect(item, "activate",
 		G_CALLBACK(on_build_arguments_activate), filetypes[GEANY_FILETYPES_LATEX]);
 	menu_items->item_set_args = item;
@@ -1589,20 +1553,24 @@
 	GeanyFiletype *ft;
 	gboolean have_path, can_build, can_make, can_run, can_stop, can_set_args, have_errors;
 	BuildMenuItems *menu_items;
+	static GtkWidget *menubar_build_menu = NULL;
 
+	if (menubar_build_menu == NULL) /* cache the build menu pointer */
+		menubar_build_menu = ui_lookup_widget(main_widgets.window, "menu_build1");
 	if (doc == NULL)
 		doc = document_get_current();
 	if (doc == NULL ||
 		(FILETYPE_ID(doc->file_type) == GEANY_FILETYPES_NONE &&	doc->file_name == NULL))
 	{
-		gtk_widget_set_sensitive(ui_lookup_widget(main_widgets.window, "menu_build1"), FALSE);
-		gtk_menu_item_remove_submenu(GTK_MENU_ITEM(ui_lookup_widget(main_widgets.window, "menu_build1")));
+		gtk_widget_set_sensitive(menubar_build_menu, FALSE);
+		gtk_menu_item_remove_submenu(GTK_MENU_ITEM(menubar_build_menu));
 		ui_widget_set_sensitive(widgets.compile_button, FALSE);
+		ui_widget_set_sensitive(widgets.build_button, FALSE);
 		ui_widget_set_sensitive(widgets.run_button, FALSE);
 		return;
 	}
 	else
-		gtk_widget_set_sensitive(ui_lookup_widget(main_widgets.window, "menu_build1"), TRUE);
+		gtk_widget_set_sensitive(menubar_build_menu, TRUE);
 
 	ft = doc->file_type;
 	g_return_if_fail(ft != NULL);
@@ -1610,7 +1578,7 @@
 	menu_items = build_get_menu_items(ft->id);
 	/* Note: don't remove the submenu first because it can now cause an X hang if
 	 * the menu is already open when called from build_exit_cb(). */
-	gtk_menu_item_set_submenu(GTK_MENU_ITEM(ui_lookup_widget(main_widgets.window, "menu_build1")),
+	gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar_build_menu),
 		menu_items->menu);
 
 	have_path = (doc->file_name != NULL);
@@ -1657,7 +1625,14 @@
 	if (menu_items->item_set_args)
 		gtk_widget_set_sensitive(menu_items->item_set_args, can_set_args);
 
+	gtk_widget_set_sensitive(widgets.toolitem_build, can_build && ft->actions->can_link);
+	gtk_widget_set_sensitive(widgets.toolitem_make_all, can_make);
+	gtk_widget_set_sensitive(widgets.toolitem_make_custom, can_make);
+	gtk_widget_set_sensitive(widgets.toolitem_make_object, can_make);
+	gtk_widget_set_sensitive(widgets.toolitem_set_args, can_set_args);
+
 	ui_widget_set_sensitive(widgets.compile_button, can_build && ft->actions->can_compile);
+	ui_widget_set_sensitive(widgets.build_button, can_make);
 	ui_widget_set_sensitive(widgets.run_button, can_run || can_stop);
 
 	/* show the stop command if a program is running, otherwise show run command */
@@ -1811,7 +1786,7 @@
 {
 	GeanyDocument *doc = document_get_current();
 
-	if (doc == NULL)
+	if (doc == NULL || doc->file_type == NULL || ! doc->file_type->actions->can_link)
 		return;
 
 	if (doc->changed)
@@ -1825,6 +1800,15 @@
 
 
 static void
+on_toolbutton_build_activate           (GtkMenuItem     *menuitem,
+                                        gpointer         user_data)
+{
+	last_toolbutton_action = GPOINTER_TO_INT(user_data);
+	on_build_build_activate(menuitem, user_data);
+}
+
+
+static void
 on_make_custom_input_response(const gchar *input)
 {
 	GeanyDocument *doc = document_get_current();
@@ -1884,6 +1868,15 @@
 }
 
 
+static void
+on_toolbutton_make_activate            (GtkMenuItem     *menuitem,
+                                        gpointer         user_data)
+{
+	last_toolbutton_action = GPOINTER_TO_INT(user_data);
+	on_build_make_activate(menuitem, user_data);
+}
+
+
 static gboolean use_html_builtin(GeanyDocument *doc, GeanyFiletype *ft)
 {
 	gboolean use_builtin = FALSE;
@@ -2013,6 +2006,70 @@
 
 void build_init()
 {
+	GtkWidget *item;
+	GtkWidget *toolmenu = geany_menu_button_action_get_menu(
+		GEANY_MENU_BUTTON_ACTION(toolbar_get_action_by_name("Build")));
+
+	if (toolmenu != NULL)
+	{
+		/* build the code */
+		item = ui_image_menu_item_new(GEANY_STOCK_BUILD, _("_Build"));
+		gtk_widget_show(item);
+		gtk_container_add(GTK_CONTAINER(toolmenu), item);
+		g_signal_connect(item, "activate", G_CALLBACK(on_toolbutton_build_activate), NULL);
+		widgets.toolitem_build = item;
+
+		item = gtk_separator_menu_item_new();
+		gtk_widget_show(item);
+		gtk_container_add(GTK_CONTAINER(toolmenu), item);
+
+		/* build the code with make all */
+		item = gtk_image_menu_item_new_with_mnemonic(_("_Make All"));
+		gtk_widget_show(item);
+		gtk_container_add(GTK_CONTAINER(toolmenu), item);
+		g_signal_connect(item, "activate", G_CALLBACK(on_toolbutton_make_activate),
+			GINT_TO_POINTER(GBO_MAKE_ALL));
+		widgets.toolitem_make_all = item;
+
+		/* build the code with make custom */
+		item = gtk_image_menu_item_new_with_mnemonic(_("Make Custom _Target"));
+		gtk_widget_show(item);
+		gtk_container_add(GTK_CONTAINER(toolmenu), item);
+		g_signal_connect(item, "activate", G_CALLBACK(on_toolbutton_make_activate),
+			GINT_TO_POINTER(GBO_MAKE_CUSTOM));
+		widgets.toolitem_make_custom = item;
+
+		/* build the code with make object */
+		item = gtk_image_menu_item_new_with_mnemonic(_("Make _Object"));
+		gtk_widget_show(item);
+		gtk_container_add(GTK_CONTAINER(toolmenu), item);
+		g_signal_connect(item, "activate", G_CALLBACK(on_toolbutton_make_activate),
+			GINT_TO_POINTER(GBO_MAKE_OBJECT));
+		widgets.toolitem_make_object = item;
+
+		item = gtk_separator_menu_item_new();
+		gtk_widget_show(item);
+		gtk_container_add(GTK_CONTAINER(toolmenu), item);
+
+		/* arguments */
+		item = ui_image_menu_item_new(GTK_STOCK_PREFERENCES, _("_Set Includes and Arguments"));
+		gtk_widget_show(item);
+		gtk_container_add(GTK_CONTAINER(toolmenu), item);
+		g_signal_connect(item, "activate", G_CALLBACK(on_build_arguments_activate), NULL);
+		widgets.toolitem_set_args = item;
+	}
+
 	widgets.compile_button = toolbar_get_widget_by_name("Compile");
 	widgets.run_button = toolbar_get_widget_by_name("Run");
+	widgets.build_button = toolbar_get_widget_by_name("Build");
 }
+
+
+void build_toolbutton_build_clicked(GtkAction *action, gpointer user_data)
+{
+	if (last_toolbutton_action == GBO_BUILD)
+		on_build_build_activate(NULL, user_data);
+	else
+		on_build_make_activate(NULL, GINT_TO_POINTER(last_toolbutton_action));
+}
+

Modified: trunk/src/build.h
===================================================================
--- trunk/src/build.h	2009-01-17 13:11:06 UTC (rev 3478)
+++ trunk/src/build.h	2009-01-17 17:59:20 UTC (rev 3479)
@@ -74,5 +74,8 @@
 
 BuildMenuItems *build_get_menu_items(gint filetype_idx);
 
+void build_toolbutton_build_clicked(GtkAction *action, gpointer user_data);
 
+
+
 #endif

Modified: trunk/src/images.c
===================================================================
--- trunk/src/images.c	2009-01-17 13:11:06 UTC (rev 3478)
+++ trunk/src/images.c	2009-01-17 17:59:20 UTC (rev 3479)
@@ -868,3 +868,348 @@
   "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
 
 
+/* Build icon, based on mattone_poroton_architet_01.png from openclipart.org. */
+/* GdkPixbuf RGBA C-Source image dump */
+
+#ifdef __SUNPRO_C
+#pragma align 4 (build_inline)
+#endif
+#ifdef __GNUC__
+static const guint8 build_inline[] __attribute__ ((__aligned__ (4))) =
+#else
+static const guint8 build_inline[] =
+#endif
+{ ""
+  /* Pixbuf magic (0x47646b50) */
+  "GdkP"
+  /* length: header (24) + pixel_data (9216) */
+  "\0\0$\30"
+  /* pixdata_type (0x1010002) */
+  "\1\1\0\2"
+  /* rowstride (192) */
+  "\0\0\0\300"
+  /* width (48) */
+  "\0\0\0""0"
+  /* height (48) */
+  "\0\0\0""0"
+  /* pixel_data: */
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0.\0\0\0z\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377"
+  "\301B\0\377\277B\0\377[\37\0\376\0\0\0:\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\212\0\0\0\377\22\6\0\377\301"
+  "B\0\377\302C\0\377\311E\0\377\1\0\0\347\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377~+\0\377\302C\0\377\302"
+  "C\0\377\302C\0\377\305D\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "=\1\0\0\374\34\11\0\373\306D\0\377\277B\0\377\302C\0\377\277B\0\377\320"
+  "G\0\377\320G\0\377\302C\0\377\300B\0\377\24\6\0\375\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\332\0\0\0\377/\20\0\376\0\0\0\377"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\0\0\0\3777\23"
+  "\0\376\320H\0\377\301B\0\377\301C\0\377\311E\0\377{*\0\377\0\0\0\377"
+  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\314F\0\377\302C\0\377\2263\0"
+  "\377\1\0\0\203\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\2\0\377\302C\0\377\302C\0\377"
+  "\301B\0\377\277B\0\377\22\6\0\376\0\0\0\370\0\0\0\37\0\0\0f\0\0\0\377"
+  "A\26\0\374\307D\0\377\300B\0\377\301B\0\377\305D\0\377}+\0\377\0\0\0"
+  "\377\1\0\0\377\0\0\0\377\5\2\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
+  "\0\377\2\0\0\377\313F\0\377\302C\0\377\313F\0\377\0\0\0\377\0\0\0\2\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\374\0\0\0\377\277B\0\377\301C\0\377\302C\0\377\301B\0\377"
+  "\275A\0\377\312E\0\377\301B\0\377\302C\0\377\277B\0\377\314F\0\377;\24"
+  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\1\0\0\377\0\0\0\377\0\0\0\377\0"
+  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
+  "\275A\0\377\301B\0\377\301B\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\371\0\0\0\377"
+  "\0\0\0\377\300B\0\377\302C\0\377\302C\0\377\301B\0\377\301C\0\377\301"
+  "B\0\377\37\12\0\377\1\0\0\377\0\0\0\377\0\0\0\377*\17\0\3772\22\0\377"
+  "\0\0\0\377\4\1\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
+  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\277B\0\377\302C\0"
+  "\377\301B\0\377F\30\0\375\0\0\0\34\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\372\0\0\0\377\0\0\0\377\0\0\0\377\277"
+  "B\0\377\302C\0\377\302C\0\377\302C\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
+  "!\14\0\377(\16\0\377\0\0\0\377\0\0\0\377\0\0\0\377\12\3\0\377\0\0\0\377"
+  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\14\4\0\377"
+  "\263=\0\377\277B\0\377\301C\0\377\302C\0\377\302C\0\377\302C\0\377\277"
+  "A\0\377\2\0\0\312\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\373\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\301B\0\377\302C\0"
+  "\377\302B\0\377,\17\0\377\0\0\0\377\0\0\0\377\0\0\0\377\1\0\0\377\1\0"
+  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
+  "\0\0\3779\23\0\377\317G\0\377\301B\0\377\302C\0\377\302C\0\377\303C\0"
+  "\377\270\77\0\377\32\10\0\377=\24\0\377\314F\0\377\302C\0\377\305D\0"
+  "\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\373"
+  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\306D\0\377\301C\0"
+  "\377\302C\0\377\2253\0\377\7\2\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
+  "\0\0\377/\20\0\377\0\0\0\377\0\0\0\3776\22\0\377\313F\0\377\301B\0\377"
+  "\301B\0\377\302C\0\377\302C\0\377\311E\0\377\0\0\0\377\1\0\0\377\0\0"
+  "\0\377\0\0\0\377\0\0\0\377\1\0\0\377\2201\0\377\302C\0\377\300B\0\377"
+  "\2\0\0\375\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\373\0\0\0\377\0"
+  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\313F\0\377\302B\0\377"
+  "\302C\0\377\2407\0\377\0\0\0\377\0\0\0\377\0\0\0\377\1\0\0\377\30\10"
+  "\0\377\310E\0\377\300B\0\377\301B\0\377\301C\0\377\301B\0\377\320H\0"
+  "\377\21\5\0\377\3\1\0\377\6\2\0\377$\15\0\377\0\0\0\377\0\0\0\377\0\0"
+  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377N\32\0\377\302C\0\377\302C\0\377"
+  "u(\0\376\0\0\0W\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\373\0\0\0\377\0\0\0\377\17\5"
+  "\0\377\4\1\0\377\0\0\0\377\0\0\0\377\1\0\0\377\320G\0\377\302C\0\377"
+  "\302C\0\377\311E\0\377\262=\0\377\320G\0\377\300B\0\377\302B\0\377\302"
+  "C\0\377\301B\0\377\306D\0\377\23\6\0\377\2\0\0\377\13\3\0\377\0\0\0\377"
+  "\0\0\0\377\0\0\0\377\0\0\0\377\1\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
+  "\0\0\0\377\0\0\0\377\0\0\0\377-\17\0\377\301B\0\377\301B\0\377\314F\0"
+  "\377\1\0\0\365\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\372\0\0\0\3771\21\0\377\0\0\0\377\0"
+  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\1\0\0\377\307D\0\377\302C\0\377"
+  "\301C\0\377\302C\0\377\302C\0\377\302C\0\377\307E\0\377\24\7\0\377\1"
+  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\1\0\0\377\0\0\0\377\0\0\0\377"
+  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
+  "\0\0\0\377\0\0\0\377\0\0\0\377\307D\0\377\301C\0\377\302C\0\377\303C"
+  "\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\371\0\0\0\377\1\0\0\377\1\0\0\377\0\0\0\377"
+  "\0\0\0\377\0\0\0\377#\14\0\377\0\0\0\377\0\0\0\377\255;\0\377\301B\0"
+  "\377\302C\0\377\301C\0\377\311E\0\377\1\0\0\377\0\0\0\377\0\0\0\377\0"
+  "\0\0\377\3\1\0\377\0\0\0\377\1\0\0\377\36\12\0\377\0\0\0\377\0\0\0\377"
+  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\1\0\0\377"
+  "\0\0\0\377\312E\0\377\302C\0\377\301C\0\377\302C\0\377\301C\0\377\300"
+  "B\0\377\23\6\0\374\0\0\0\31\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\1\0\0\372=\26\0\377\13\4\0\377\17\5\0\377\12\3\0\377\0"
+  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\33\12\0\377\0\0\0\377\177,\0\377"
+  "\302C\0\377\301C\0\377\310E\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
+  "\377\0\0\0\377\0\0\0\377\0\0\0\377\1\0\0\377:\25\0\377-\20\0\377\0\0"
+  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\2479\0\377\277B\0\377"
+  "\301B\0\377\301B\0\377\310E\0\377\2479\0\377K\32\0\377\302C\0\377\301"
+  "B\0\377\302C\0\377\212/\0\377\0\0\0\332\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0a#\0\373\2\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\32"
+  "\11\0\377\0\0\0\377\20\5\0\377\26\7\0\377\4\1\0\377\23\6\0\377\0\0\0"
+  "\377<\24\0\377\301B\0\377\302B\0\377\302C\0\377\0\0\0\377\0\0\0\377\4"
+  "\1\0\377\0\0\0\377!\14\0\377\40\13\0\377\0\0\0\377\5\1\0\377\35\12\0"
+  "\377\0\0\0\377\1\0\0\377\3\0\0\377\316G\0\377\301B\0\377\302B\0\377\301"
+  "B\0\377\317G\0\377\0\0\0\377\1\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
+  "\0\0\0\377\307E\0\377\301B\0\377\320H\0\377\0\0\0\377\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0l&\0\374\0\0\0\377@\27\0\377\2204\0\377\0\0\0"
+  "\377\200.\0\377|,\0\377*\17\0\377\7\2\0\377)\16\0\377\0\0\0\377\15\5"
+  "\0\377\0\0\0\377\20\5\0\377\301B\0\377\302C\0\377\277B\0\377\0\0\0\377"
+  "\0\0\0\377\177-\0\377\24\6\0\377\0\0\0\377\0\0\0\377*\17\0\377\0\0\0"
+  "\377\2304\0\377\277B\0\377\301B\0\377\302C\0\377\277B\0\377\2437\0\377"
+  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
+  "\0\0\0\377\1\0\0\377\315F\0\377\301B\0\377\304C\0\377\0\0\0\374\0\0\0"
+  "\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\2153\0\377\27\10\0\377\2050\0\377"
+  "\201.\0\377\2101\0\377\2060\0\377\2101\0\377\0\0\0\377\200.\0\377\0\0"
+  "\0\377\23\6\0\377\0\0\0\377\0\0\0\377\0\0\0\377\300B\0\377\302C\0\377"
+  "\302C\0\377\0\0\0\377\0\0\0\377\36\13\0\377\0\0\0\377N\32\0\377\303C"
+  "\0\377\301B\0\377\302C\0\377\301B\0\377\314F\0\377)\16\0\377\2\0\0\377"
+  "\0\0\0\377\0\0\0\377\4\1\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
+  "\0\0\0\377\0\0\0\377\0\0\0\377\2\0\0\377\307D\0\377\302C\0\377\277B\0"
+  "\377\7\2\0\377\0\0\0\271\0\0\0\1\0\0\0\322Z\40\0\377\2050\0\377\202/"
+  "\0\377&\15\0\377k&\0\377\2101\0\377\1\0\0\377\2070\0\377\77\26\0\377"
+  "\26\10\0\377\2214\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
+  "\377\301B\0\377\302C\0\377\302C\0\377\306D\0\377\307E\0\377\300B\0\377"
+  "\301B\0\377\302C\0\377\302C\0\377\2325\0\377\0\0\0\377\0\0\0\377\0\0"
+  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
+  "\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
+  "\304C\0\377\301C\0\377\301B\0\377t'\0\377\0\0\0\377\0\0\0\0\0\0\0\376"
+  "\2050\0\377;\25\0\377|-\0\3776\23\0\377\201.\0\377R\35\0\377\2060\0\377"
+  "\204/\0\377\2040\0\377\2071\0\377\0\0\0\377\0\0\0\377\34\12\0\377\0\0"
+  "\0\377\0\0\0\377\0\0\0\377\305D\0\377\301B\0\377\301B\0\377\302C\0\377"
+  "\302C\0\377\302C\0\377\207.\0\377\2\0\0\377\0\0\0\377\0\0\0\377\0\0\0"
+  "\377\0\0\0\377\0\0\0\377\0\0\0\377c#\0\377\0\0\0\377\0\0\0\377\0\0\0"
+  "\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\272"
+  "@\0\377\302C\0\377\301B\0\377\276A\0\377\177+\0\377\0\0\0\377\0\0\0\0"
+  "\0\0\0\25\3\0\0\376\2111\0\377\0\0\0\377X\37\0\377T\36\0\377\201.\0\377"
+  "\201.\0\377<\25\0\377\201.\0\377b#\0\377\2153\0\377\2071\0\377|,\0\377"
+  "#\14\0\377Z\40\0\377\0\0\0\377\0\0\0\377\316G\0\377\302C\0\377\302C\0"
+  "\377\302C\0\377\2438\0\377\0\0\0\377\0\0\0\377\0\0\0\377\11\3\0\377\0"
+  "\0\0\377\0\0\0\377\0\0\0\377\6\1\0\377*\17\0\3775\23\0\377\25\7\0\377"
+  "\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\312E\0\377\301B\0"
+  "\377\301B\0\377\305D\0\377L\32\0\377\2\0\0\377\0\0\0\377\0\0\0\377\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\3\1\0\374\0\0\0\377\0\0\0\377\200.\0\377\201."
+  "\0\377\2111\0\377\2060\0\377\201.\0\377\200.\0\377\2050\0\377\2111\0"
+  "\377\0\0\0\377\10\2\0\377]!\0\377\0\0\0\377\0\0\0\377\1\0\0\377\314F"
+  "\0\377\302C\0\377\302C\0\377\316G\0\377\1\0\0\377\0\0\0\377\0\0\0\377"
+  "\4\1\0\377\0\0\0\377\0\0\0\377\0\0\0\377\1\0\0\377N\33\0\377\0\0\0\377"
+  "\1\0\0\377\0\0\0\377\0\0\0\377\11\3\0\377\310E\0\377\302C\0\377\301B"
+  "\0\377\304C\0\377#\13\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
+  "\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0,\17\0\374v*\0\377*\16\0\377"
+  "\2070\0\377\2050\0\377\202/\0\377\202/\0\377\2050\0\377\37\13\0\377\0"
+  "\0\0\377N\33\0\377,\20\0\377\7\2\0\377\1\0\0\377\1\0\0\377\0\0\0\377"
+  "\1\0\0\377\273@\0\377\301B\0\377\301C\0\377\315F\0\377\2\1\0\377\0\0"
+  "\0\377\0\0\0\377\0\0\0\377\1\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
+  "\0\0\377\3\1\0\377;\23\0\377\302C\0\377\301B\0\377\302C\0\377\315F\0"
+  "\377\5\1\0\377\13\4\0\377\34\11\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0"
+  "\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\23\7\0\375"
+  "O\34\0\377\27\10\0\377\201.\0\377\202/\0\377W\37\0\377\2050\0\377\201"
+  ".\0\3772\21\0\377\0\0\0\377x+\0\377\204/\0\377\200.\0\377>\26\0\377\1"
+  "\0\0\377\0\0\0\377\0\0\0\377\2366\0\377\302C\0\377\301C\0\377\303C\0"
+  "\377\0\0\0\377#\14\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0"
+  "\0\377{*\0\377\300B\0\377\301B\0\377\302C\0\377\321H\0\377\0\0\0\377"
+  "\0\0\0\377r)\0\377\2060\0\377k&\0\377S\36\0\377#\14\0\377\0\0\0\377\0"
+  "\0\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\77"
+  "\27\0\375\204/\0\377\2070\0\377o(\0\377u*\0\377\204/\0\377\201.\0\377"
+  "U\36\0\377\2132\0\377V\36\0\377\204/\0\377\0\0\0\377v+\0\377Q\35\0\377"
+  "\0\0\0\377\0\0\0\377\0\0\0\377q&\0\377\302C\0\377\302B\0\377\300B\0\377"
+  "\4\1\0\377\0\0\0\377\0\0\0\377\0\0\0\377\306D\0\377\300B\0\377\302B\0"
+  "\377\301B\0\377\277A\0\377\0\0\0\3773\22\0\377}-\0\377\0\0\0\377\211"
+  "1\0\377\2101\0\377\0\0\0\377\25\10\0\377\0\0\0\377&\15\0\377\0\0\0\377"
+  "%\15\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4}-"
+  "\0\376N\34\0\377\201.\0\377\2122\0\377z,\0\377\2060\0\377\204/\0\377"
+  "\0\0\0\3776\23\0\377\2204\0\377\0\0\0\377G\31\0\377\3\1\0\377\0\0\0\377"
+  "\0\0\0\377\0\0\0\377\0\0\0\377N\32\0\377\302C\0\377\302C\0\377\302C\0"
+  "\377\277B\0\377\314F\0\377\302C\0\377\302C\0\377\301B\0\377\2274\0\377"
+  "\0\0\0\377H\32\0\377\203/\0\377\202/\0\377\2070\0\377\2060\0\377\203"
+  "/\0\377\2163\0\377D\30\0\3771\21\0\377\0\0\0\377@\26\0\377\2111\0\377"
+  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5"
+  "\1\0\13\0\0\0\376l'\0\377Q\35\0\377\203/\0\377o(\0\377\10\2\0\377\177"
+  ".\0\377|,\0\377\0\0\0\377\2\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377A\27"
+  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377;\23\0\377\301B\0\377\301B\0\377"
+  "\301B\0\377\302C\0\377\306D\0\377I\31\0\377\5\1\0\377\2060\0\377[!\0"
+  "\377\202/\0\377\202/\0\377T\36\0\377\202/\0\377\2070\0\377\2071\0\377"
+  "\2101\0\377k&\0\3772\22\0\377f%\0\377\6\1\0\377\7\2\0\377\15\5\0\377"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\32\22\6\0\377\2\0\0\377\2070\0\377\204/\0\377\201.\0\377\202/\0\377"
+  "\2070\0\377\2100\0\377\203/\0\377\0\0\0\377\0\0\0\377\16\5\0\377\0\0"
+  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377q&\0\377\302C\0\377\303"
+  "C\0\377\22\6\0\377\0\0\0\377\204/\0\377\202/\0\377\201.\0\377\202/\0"
+  "\377\202/\0\377\202/\0\377\2050\0\377\2101\0\377t*\0\377\201.\0\377\200"
+  ".\0\377M\33\0\377\201.\0\377\2101\0\377E\30\0\377\204/\0\377i&\0\377"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0*\0\0\0\377\2060\0\377\2122\0\377\201.\0\377U\36\0\377\206"
+  "0\0\377-\20\0\377\0\0\0\377\\!\0\377P\34\0\377l'\0\377\0\0\0\377\0\0"
+  "\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\207"
+  "0\0\377\202/\0\377\202/\0\377\202/\0\377\203/\0\377\202/\0\377\202/\0"
+  "\377\203/\0\377\202/\0\377\2111\0\377\201.\0\377\10\3\0\377\200.\0\377"
+  "\31\11\0\377\201.\0\377N\34\0\377\2111\0\377t*\0\377\0\0\0\377\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0""6\0\0\0\377>\26\0\377<\25\0\377\202/\0\377\202/\0\377\202"
+  "/\0\377\177.\0\377E\30\0\3773\22\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
+  "\0\0\0\377Z\40\0\377\0\0\0\377\0\0\0\377\26\7\0\377\202/\0\377\202/\0"
+  "\377\202/\0\377\202/\0\377\202.\0\377\201.\0\377\204/\0\377\202/\0\377"
+  "\202/\0\377\202/\0\377\2060\0\377\203/\0\377\202/\0\377\201/\0\377\202"
+  "/\0\377M\33\0\377\201.\0\377\202/\0\377\203/\0\377I\32\0\377\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0I\2071\0\377\2060\0\377\1\0\0\377]!\0\377E\30\0\377"
+  "\203/\0\377\0\0\0\377\202.\0\377\1\0\0\377\26\10\0\377&\15\0\377\6\2"
+  "\0\377]!\0\377\0\0\0\377\0\0\0\377\33\11\0\377\202.\0\377\202/\0\377"
+  "\202/\0\377\202.\0\377\202/\0\377\202/\0\377\201.\0\377\202/\0\377\202"
+  ".\0\3775\23\0\377\201.\0\377B\27\0\377\203/\0\377\201.\0\377`\"\0\377"
+  "\201.\0\377~-\0\377\201.\0\377J\32\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\5\1\0^\2163\0\377j&\0\377\201.\0\377\202/\0\377Q\35\0\377"
+  "\16\5\0\377t)\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
+  "\0\0\0\377\0\0\0\377\27\10\0\377\202/\0\377\202/\0\377P\35\0\377\200"
+  ".\0\377\202/\0\377\202/\0\377\202/\0\377\0\0\0\377\202/\0\377\202/\0"
+  "\377\202/\0\377\201.\0\377\201.\0\377`\"\0\377\201.\0\377\201.\0\377"
+  "\2071\0\377\201.\0\377\202/\0\377\36\12\0\377\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\1\0\0o\2111\0\377\202/\0\377u*\0\377\201.\0\377\2060\0\377"
+  "\0\0\0\377-\20\0\377A\27\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377"
+  "\0\0\0\377!\14\0\377\202/\0\377\202/\0\377\201.\0\377\201.\0\377\203"
+  "/\0\377\202/\0\377\202/\0\377\202.\0\377\202/\0\377\202/\0\377.\20\0"
+  "\377\201.\0\377\202/\0\377\201.\0\377\201.\0\377\201.\0\377r)\0\377\201"
+  ".\0\377\2122\0\377\33\11\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\2\0\0\206\2132\0\377w*\0\377\2132\0\377|,\0\377r)\0\377\2111\0"
+  "\377\0\0\0\377L\33\0\377\0\0\0\377\0\0\0\377\0\0\0\377\0\0\0\377+\17"
+  "\0\377\201.\0\377\202/\0\377\202/\0\377\201.\0\377\202/\0\377\202/\0"
+  "\377\201.\0\377\202/\0\377\201.\0\377\202/\0\377\202/\0\377\201.\0\377"
+  "\202/\0\377\202/\0\377\202/\0\377\203/\0\377w+\0\377\201.\0\377\202/"
+  "\0\377\21\6\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\237\2132\0\377X\37\0\377\201.\0\377~-\0\3777\23\0\377\7\2\0\377"
+  "G\31\0\377\0\0\0\377\0\0\0\377I\32\0\377\0\0\0\3776\23\0\377\202.\0\377"
+  "\202/\0\377\202.\0\377\202.\0\377\202/\0\377\2050\0\377z,\0\377\202."
+  "\0\377\202.\0\377\6\2\0\377\201.\0\377\202.\0\377\202/\0\377\202.\0\377"
+  "\202.\0\377\202.\0\377\201.\0\377\201.\0\377\2040\0\377\0\0\0\377\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\264\214"
+  "2\0\377\203/\0\377\11\3\0\377\2111\0\377\2101\0\377\0\0\0\377\1\0\0\377"
+  "\10\2\0\377\2\0\0\377\0\0\0\377C\30\0\377\201/\0\377\201/\0\377k&\0\377"
+  "\201.\0\377\202/\0\377\201.\0\377\201/\0\377\201.\0\377\201/\0\377\201"
+  "/\0\377\201.\0\377\201/\0\377\202/\0\377{,\0\377\201.\0\377\201.\0\377"
+  "\201.\0\3778\23\0\377\1\0\0\275\0\0\0\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\310\2121\0\377P\34\0\377"
+  "2\21\0\377\2111\0\377\10\2\0\377\"\14\0\377\20\5\0\377\0\0\0\377\0\0"
+  "\0\377Q\35\0\377\201/\0\377\202/\0\377\200.\0\377\201.\0\377\202/\0\377"
+  "\201/\0\377\201/\0\377\201/\0\377\201/\0\377\2050\0\377\202/\0\377\201"
+  "/\0\377\202/\0\377\201/\0\377\201.\0\377j&\0\377\1\0\0\366\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\335\2122\0\377\201.\0\377\0\0\0\377\0\0"
+  "\0\377\0\0\0\377x+\0\377\0\0\0\377G\31\0\377^!\0\377\201.\0\377\202/"
+  "\0\377\201.\0\377\201.\0\377\202/\0\377\2050\0\377\2111\0\377\201.\0"
+  "\377\201.\0\377\201.\0\377\201.\0\377\201.\0\377\201.\0\377\2101\0\377"
+  "\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\351\3\1\0\377\0\0\0\377H\32\0\377\0\0\0\377\15\4\0\377\0\0\0\377"
+  "\0\0\0\377h%\0\377\201.\0\377\202/\0\377\202.\0\377\201.\0\377\202/\0"
+  "\377\202/\0\377\202/\0\377\202.\0\377\201.\0\377F\31\0\377\201.\0\377"
+  "\2122\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\372~-\0\377\0\0\0\377\0\0\0\377"
+  "\0\0\0\377\0\0\0\377\0\0\0\377k&\0\377\202/\0\377\202/\0\377\202/\0\377"
+  "\40\13\0\377\201.\0\377\202/\0\377\202/\0\377\202/\0\377\202/\0\377\206"
+  "0\0\377\7\2\0\377\0\0\0'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\377\0\0\0"
+  "\377@\27\0\3777\24\0\377\0\0\0\377\0\0\0\377o(\0\377\202/\0\377\202/"
+  "\0\377\202/\0\377\202/\0\377\202/\0\377\202/\0\377\202/\0\377\202/\0"
+  "\377)\16\0\377\1\0\0\223\0\0\0\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\1\0\0\0\377\13\4\0\377\0\0\0\377\0\0\0\377\0\0\0\377r)\0\377\202"
+  "/\0\377\202/\0\377\202/\0\377\202/\0\377\202.\0\377\201.\0\377V\36\0"
+  "\377\1\0\0\357\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\3\0\0\0\377\24\7\0\377\0\0\0\377\0\0\0\377u*\0\377"
+  "\202/\0\377\202/\0\377\202/\0\377\201.\0\377|,\0\377\0\0\0\377\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\0\0\0\377\0\0\0\377y+\0\377\201"
+  ".\0\377\201.\0\377\2121\0\377\0\0\0\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\11\3\0\377|,\0\377\2101\0\377\0"
+  "\0\0\377\0\0\0\26\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\374\10\3\0\377\0\0\0Y\0\0\0\2\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"
+  "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"};
+
+

Modified: trunk/src/toolbar.c
===================================================================
--- trunk/src/toolbar.c	2009-01-17 13:11:06 UTC (rev 3478)
+++ trunk/src/toolbar.c	2009-01-17 17:59:20 UTC (rev 3479)
@@ -34,6 +34,7 @@
 #include "utils.h"
 #include "dialogs.h"
 #include "document.h"
+#include "build.h"
 #include "geanymenubuttonaction.h"
 #include "geanyentryaction.h"
 
@@ -167,6 +168,7 @@
 	GtkBox *box;
 	GtkAction *action_new;
 	GtkAction *action_open;
+	GtkAction *action_build;
 	GtkAction *action_searchentry;
 	GtkAction *action_gotoentry;
 	GError *error = NULL;
@@ -188,6 +190,12 @@
 	g_signal_connect(action_open, "button-clicked", G_CALLBACK(on_toolbutton_open_clicked), NULL);
 	gtk_action_group_add_action(group, action_open);
 
+	action_build = geany_menu_button_action_new(
+		"Build", NULL, _("Build the current file"), GEANY_STOCK_BUILD);
+	g_signal_connect(action_build, "button-clicked",
+		G_CALLBACK(build_toolbutton_build_clicked), NULL);
+	gtk_action_group_add_action(group, action_build);
+
 	action_searchentry = geany_entry_action_new(
 		"SearchEntry", _("Search"), _("Find the entered text in the current file"), FALSE);
 	g_signal_connect(action_searchentry, "entry-activate",

Modified: trunk/src/ui_utils.c
===================================================================
--- trunk/src/ui_utils.c	2009-01-17 13:11:06 UTC (rev 3478)
+++ trunk/src/ui_utils.c	2009-01-17 17:59:20 UTC (rev 3479)
@@ -821,6 +821,11 @@
 			return gdk_pixbuf_new_from_inline(-1, close_all_inline, FALSE, NULL);
 			break;
 		}
+		case GEANY_IMAGE_BUILD:
+		{
+			return gdk_pixbuf_new_from_inline(-1, build_inline, FALSE, NULL);
+			break;
+		}
 		default:
 			return NULL;
 	}
@@ -831,6 +836,8 @@
 {
 	if (utils_str_equal(stock_id, GEANY_STOCK_CLOSE_ALL))
 		return ui_new_pixbuf_from_inline(GEANY_IMAGE_CLOSE_ALL);
+	else if (utils_str_equal(stock_id, GEANY_STOCK_BUILD))
+		return ui_new_pixbuf_from_inline(GEANY_IMAGE_BUILD);
 	else if (utils_str_equal(stock_id, GEANY_STOCK_SAVE_ALL))
 		return ui_new_pixbuf_from_inline(GEANY_IMAGE_SAVE_ALL);
 
@@ -1593,7 +1600,8 @@
 	GtkStockItem items[] =
 	{
 		{ GEANY_STOCK_SAVE_ALL, _("Save All"), 0, 0, GETTEXT_PACKAGE },
-		{ GEANY_STOCK_CLOSE_ALL, _("Close All"), 0, 0, GETTEXT_PACKAGE }
+		{ GEANY_STOCK_CLOSE_ALL, _("Close All"), 0, 0, GETTEXT_PACKAGE },
+		{ GEANY_STOCK_BUILD, _("Build"), 0, 0, GETTEXT_PACKAGE }
 	};
 
 	len = G_N_ELEMENTS(items);

Modified: trunk/src/ui_utils.h
===================================================================
--- trunk/src/ui_utils.h	2009-01-17 13:11:06 UTC (rev 3478)
+++ trunk/src/ui_utils.h	2009-01-17 17:59:20 UTC (rev 3479)
@@ -140,11 +140,14 @@
 
 #define GEANY_STOCK_SAVE_ALL "geany-save-all"
 #define GEANY_STOCK_CLOSE_ALL "geany-close-all"
+#define GEANY_STOCK_BUILD "geany-build"
+
 enum
 {
 	GEANY_IMAGE_LOGO,
 	GEANY_IMAGE_SAVE_ALL,
-	GEANY_IMAGE_CLOSE_ALL
+	GEANY_IMAGE_CLOSE_ALL,
+	GEANY_IMAGE_BUILD
 };
 
 


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