static void tb_editor_browser_populate_tool_menu_cb(MidoriBrowser *browser, GtkWidget *menu, MidoriExtension *ext);
+static void tb_editor_browser_populate_toolbar_menu_cb(MidoriBrowser *browser, GtkWidget *menu,
+ MidoriExtension *ext);
+
static void tb_editor_app_add_browser_cb(MidoriApp *app, MidoriBrowser *browser, MidoriExtension *ext);
MidoriApp *app = midori_extension_get_app(extension);
g_signal_handlers_disconnect_by_func(browser, tb_editor_browser_populate_tool_menu_cb, extension);
+ g_signal_handlers_disconnect_by_func(browser, tb_editor_browser_populate_toolbar_menu_cb, extension);
g_signal_handlers_disconnect_by_func(extension, tb_editor_deactivate_cb, browser);
g_signal_handlers_disconnect_by_func(app, tb_editor_app_add_browser_cb, extension);
}
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
}
+static void tb_editor_browser_populate_toolbar_menu_cb(MidoriBrowser *browser, GtkWidget *menu,
+ MidoriExtension *ext)
+{
+ GtkWidget* separator;
+ GtkWidget* menuitem;
+
+ separator = gtk_separator_menu_item_new ();
+ gtk_widget_show (separator);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), separator);
+ menuitem = gtk_menu_item_new_with_mnemonic (_("_Customize..."));
+ g_signal_connect (menuitem, "activate",
+ G_CALLBACK (tb_editor_menu_configure_toolbar_activate_cb), browser);
+ gtk_widget_show (menuitem);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
+}
+
static void tb_editor_app_add_browser_cb(MidoriApp *app, MidoriBrowser *browser, MidoriExtension *ext)
{
- g_signal_connect(browser, "populate-tool-menu", G_CALLBACK(tb_editor_browser_populate_tool_menu_cb), ext);
- g_signal_connect(ext, "deactivate", G_CALLBACK(tb_editor_deactivate_cb), browser);
+ g_signal_connect(browser, "populate-tool-menu", G_CALLBACK(tb_editor_browser_populate_tool_menu_cb), ext);
+ g_signal_connect(browser, "populate-toolbar-menu", G_CALLBACK(tb_editor_browser_populate_toolbar_menu_cb), ext);
+ g_signal_connect(ext, "deactivate", G_CALLBACK(tb_editor_deactivate_cb), browser);
}
ADD_DOWNLOAD,
SEND_NOTIFICATION,
POPULATE_TOOL_MENU,
+ POPULATE_TOOLBAR_MENU,
QUIT,
SHOW_PREFERENCES,
g_cclosure_marshal_VOID__OBJECT,
G_TYPE_NONE, 1,
GTK_TYPE_MENU);
+ /**
+ * MidoriBrowser::populate-toolbar-menu:
+ * @browser: the object on which the signal is emitted
+ * @menu: the #GtkMenu to populate
+ *
+ * Emitted when a toolbar menu is displayed on right-click.
+ *
+ * Since: 0.3.4
+ */
+ signals[POPULATE_TOOLBAR_MENU] = g_signal_new (
+ "populate-toolbar-menu",
+ G_TYPE_FROM_CLASS (class),
+ (GSignalFlags)(G_SIGNAL_RUN_LAST),
+ 0,
+ 0,
+ NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ GTK_TYPE_MENU);
signals[QUIT] = g_signal_new (
"quit",
_action_by_name (browser, "Statusbar"));
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
+ g_signal_emit (browser, signals[POPULATE_TOOLBAR_MENU], 0, menu);
+
katze_widget_popup (widget, GTK_MENU (menu), NULL,
button == -1 ? KATZE_MENU_POSITION_LEFT : KATZE_MENU_POSITION_CURSOR);
return TRUE;