Revision: 3261 http://geany.svn.sourceforge.net/geany/?rev=3261&view=rev Author: ntrel Date: 2008-11-21 13:34:58 +0000 (Fri, 21 Nov 2008)
Log Message: ----------- Add function ui_image_menu_item_new() to the plugin API, to easily create a menu item with a stock image and a custom label.
Modified Paths: -------------- trunk/ChangeLog trunk/plugins/classbuilder.c trunk/plugins/filebrowser.c trunk/src/plugindata.h trunk/src/plugins.c trunk/src/symbols.c trunk/src/ui_utils.c trunk/src/ui_utils.h
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2008-11-21 13:06:09 UTC (rev 3260) +++ trunk/ChangeLog 2008-11-21 13:34:58 UTC (rev 3261) @@ -3,6 +3,10 @@ * src/symbols.c: Add Expand/Collapse All symbol list popup menu items. Disable smybol list sort items when there are no tags. + * src/ui_utils.h, src/plugindata.h, src/plugins.c, src/symbols.c, + src/ui_utils.c, plugins/filebrowser.c, plugins/classbuilder.c: + Add function ui_image_menu_item_new() to the plugin API, to easily + create a menu item with a stock image and a custom label.
2008-11-20 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/plugins/classbuilder.c =================================================================== --- trunk/plugins/classbuilder.c 2008-11-21 13:06:09 UTC (rev 3260) +++ trunk/plugins/classbuilder.c 2008-11-21 13:34:58 UTC (rev 3261) @@ -773,17 +773,13 @@ void plugin_init(GeanyData *data) { GtkWidget *menu_create_class1; - GtkWidget *image1861; GtkWidget *menu_create_class1_menu; GtkWidget *menu_create_cpp_class; GtkWidget *menu_create_gtk_class;
- menu_create_class1 = gtk_image_menu_item_new_with_mnemonic (_("Create Cla_ss")); + menu_create_class1 = p_ui->image_menu_item_new (GTK_STOCK_ADD, _("Create Cla_ss")); gtk_container_add (GTK_CONTAINER (geany->main_widgets->tools_menu), menu_create_class1);
- image1861 = gtk_image_new_from_stock ("gtk-add", GTK_ICON_SIZE_MENU); - gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_create_class1), image1861); - menu_create_class1_menu = gtk_menu_new (); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_create_class1), menu_create_class1_menu);
Modified: trunk/plugins/filebrowser.c =================================================================== --- trunk/plugins/filebrowser.c 2008-11-21 13:06:09 UTC (rev 3260) +++ trunk/plugins/filebrowser.c 2008-11-21 13:34:58 UTC (rev 3261) @@ -522,7 +522,7 @@
static GtkWidget *create_popup_menu(void) { - GtkWidget *item, *menu, *image; + GtkWidget *item, *menu;
menu = gtk_menu_new();
@@ -532,19 +532,13 @@ g_signal_connect(item, "activate", G_CALLBACK(on_open_clicked), NULL); popup_items.open = item;
- image = gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU); - gtk_widget_show(image); - item = gtk_image_menu_item_new_with_mnemonic(_("Open _externally")); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); + item = p_ui->image_menu_item_new(GTK_STOCK_OPEN, _("Open _externally")); gtk_widget_show(item); gtk_container_add(GTK_CONTAINER(menu), item); g_signal_connect(item, "activate", G_CALLBACK(on_external_open), NULL); popup_items.open_external = item;
- image = gtk_image_new_from_stock(GTK_STOCK_FIND, GTK_ICON_SIZE_MENU); - gtk_widget_show(image); - item = gtk_image_menu_item_new_with_mnemonic(_("_Find in Files")); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); + item = p_ui->image_menu_item_new(GTK_STOCK_FIND, _("_Find in Files")); gtk_widget_show(item); gtk_container_add(GTK_CONTAINER(menu), item); g_signal_connect(item, "activate", G_CALLBACK(on_find_in_files), NULL); @@ -563,9 +557,7 @@ gtk_widget_show(item); gtk_container_add(GTK_CONTAINER(menu), item);
- item = gtk_image_menu_item_new_with_mnemonic(_("H_ide Sidebar")); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), - gtk_image_new_from_stock("gtk-close", GTK_ICON_SIZE_MENU)); + item = p_ui->image_menu_item_new(GTK_STOCK_CLOSE, _("H_ide Sidebar")); gtk_widget_show(item); gtk_container_add(GTK_CONTAINER(menu), item); g_signal_connect(item, "activate", G_CALLBACK(on_hide_sidebar), NULL);
Modified: trunk/src/plugindata.h =================================================================== --- trunk/src/plugindata.h 2008-11-21 13:06:09 UTC (rev 3260) +++ trunk/src/plugindata.h 2008-11-21 13:34:58 UTC (rev 3261) @@ -45,7 +45,7 @@ enum { /** The Application Programming Interface (API) version, incremented * whenever any plugin data types are modified or appended to. */ - GEANY_API_VERSION = 109, + GEANY_API_VERSION = 110,
/** The Application Binary Interface (ABI) version, incremented whenever * existing fields in the plugin data types have to be changed or reordered. */ @@ -359,6 +359,7 @@ GtkWidget* (*button_new_with_image) (const gchar *stock_id, const gchar *text); void (*add_document_sensitive) (GtkWidget *widget); void (*widget_set_tooltip_text) (GtkWidget *widget, const gchar *text); + GtkWidget* (*image_menu_item_new) (const gchar *stock_id, const gchar *label); } UIUtilsFuncs;
Modified: trunk/src/plugins.c =================================================================== --- trunk/src/plugins.c 2008-11-21 13:06:09 UTC (rev 3260) +++ trunk/src/plugins.c 2008-11-21 13:34:58 UTC (rev 3261) @@ -207,7 +207,8 @@ &ui_path_box_new, &ui_button_new_with_image, &ui_add_document_sensitive, - &ui_widget_set_tooltip_text + &ui_widget_set_tooltip_text, + &ui_image_menu_item_new };
static DialogFuncs dialog_funcs = {
Modified: trunk/src/symbols.c =================================================================== --- trunk/src/symbols.c 2008-11-21 13:06:09 UTC (rev 3260) +++ trunk/src/symbols.c 2008-11-21 13:34:58 UTC (rev 3261) @@ -1708,18 +1708,6 @@ }
-static GtkWidget * -ui_image_menu_item_new_with_stock(const gchar *label, const gchar *stock_id) -{ - GtkWidget *item = gtk_image_menu_item_new_with_mnemonic(label); - GtkWidget *image = gtk_image_new_from_stock(stock_id, GTK_ICON_SIZE_MENU); - - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); - gtk_widget_show(image); - return item; -} - - static void on_expand_collapse(GtkWidget *widget, gpointer user_data) { gboolean expand = utils_str_equal(user_data, GTK_STOCK_ADD); @@ -1743,13 +1731,13 @@
tv.popup_taglist = menu = gtk_menu_new();
- symbol_menu.expand_all = item = ui_image_menu_item_new_with_stock( + symbol_menu.expand_all = item = ui_image_menu_item_new( _("_Expand All"), GTK_STOCK_ADD); gtk_widget_show(item); gtk_container_add(GTK_CONTAINER(menu), item); g_signal_connect(item, "activate", G_CALLBACK(on_expand_collapse), GTK_STOCK_ADD);
- symbol_menu.collapse_all = item = ui_image_menu_item_new_with_stock( + symbol_menu.collapse_all = item = ui_image_menu_item_new( _("_Collapse All"), GTK_STOCK_REMOVE); gtk_widget_show(item); gtk_container_add(GTK_CONTAINER(menu), item);
Modified: trunk/src/ui_utils.c =================================================================== --- trunk/src/ui_utils.c 2008-11-21 13:06:09 UTC (rev 3260) +++ trunk/src/ui_utils.c 2008-11-21 13:34:58 UTC (rev 3261) @@ -1200,6 +1200,22 @@ }
+/** Create a @c GtkImageMenuItem with a stock image and a custom label. + * @param stock_id Stock image ID, e.g. @c GTK_STOCK_OPEN. + * @param label Menu item label, can include mnemonics. + * @return The new @c GtkImageMenuItem. */ +GtkWidget * +ui_image_menu_item_new(const gchar *stock_id, const gchar *label) +{ + GtkWidget *item = gtk_image_menu_item_new_with_mnemonic(label); + GtkWidget *image = gtk_image_new_from_stock(stock_id, GTK_ICON_SIZE_MENU); + + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), image); + gtk_widget_show(image); + return item; +} + + static void add_to_size_group(GtkWidget *widget, gpointer size_group) { g_return_if_fail(GTK_IS_SIZE_GROUP(size_group));
Modified: trunk/src/ui_utils.h =================================================================== --- trunk/src/ui_utils.h 2008-11-21 13:06:09 UTC (rev 3260) +++ trunk/src/ui_utils.h 2008-11-21 13:34:58 UTC (rev 3261) @@ -150,6 +150,8 @@
GtkWidget *ui_button_new_with_image(const gchar *stock_id, const gchar *text);
+GtkWidget *ui_image_menu_item_new(const gchar *stock_id, const gchar *label); + void ui_hbutton_box_copy_layout(GtkButtonBox *master, GtkButtonBox *copy);
void ui_combo_box_add_to_history(GtkComboBox *combo, const gchar *text);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.