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. git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3261 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
parent
df3ffab018
commit
dc8227ad94
@ -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>
|
||||
|
@ -773,17 +773,13 @@ on_menu_create_gtk_class_activate (GtkMenuItem *menuitem,
|
||||
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);
|
||||
|
||||
|
@ -522,7 +522,7 @@ static void on_hide_sidebar(void)
|
||||
|
||||
static GtkWidget *create_popup_menu(void)
|
||||
{
|
||||
GtkWidget *item, *menu, *image;
|
||||
GtkWidget *item, *menu;
|
||||
|
||||
menu = gtk_menu_new();
|
||||
|
||||
@ -532,19 +532,13 @@ static GtkWidget *create_popup_menu(void)
|
||||
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 @@ static GtkWidget *create_popup_menu(void)
|
||||
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);
|
||||
|
@ -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 @@ typedef struct UIUtilsFuncs
|
||||
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;
|
||||
|
||||
|
@ -207,7 +207,8 @@ static UIUtilsFuncs uiutils_funcs = {
|
||||
&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 = {
|
||||
|
@ -1708,18 +1708,6 @@ static void on_symbol_tree_menu_show(GtkWidget *widget,
|
||||
}
|
||||
|
||||
|
||||
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 @@ static void create_taglist_popup_menu(void)
|
||||
|
||||
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);
|
||||
|
@ -1200,6 +1200,22 @@ GtkWidget *ui_button_new_with_image(const gchar *stock_id, const gchar *text)
|
||||
}
|
||||
|
||||
|
||||
/** 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));
|
||||
|
@ -150,6 +150,8 @@ GtkWidget *ui_dialog_vbox_new(GtkDialog *dialog);
|
||||
|
||||
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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user