GTK + выпадающее меню для элемента панели инструментов - PullRequest
1 голос
/ 03 февраля 2012

Я видел, что у rekonq есть элемент панели инструментов с такими настройками, как Chromium, который вы нажимаете, и появляется раскрывающееся меню!

Как я могу сделать что-то подобное в моем приложении?я предполагаю, что это gtk_toolbar_item с gtk_menu, помещенным при его нажатии, но как?

Example of Drop down menu

1 Ответ

2 голосов
/ 03 февраля 2012

В C вы можете сделать это:

GtkToolItem *menubutton = gtk_menu_tool_button_new(NULL, NULL);
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), menubutton, 1);
GtkWidget *menu = gtk_menu_new();
gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(menubutton), menu);
GtkAction *action = gtk_action_new("dropdown-menu", "Dropdown", "Click me", GTK_STOCK_PREFERENCES);
gtk_action_connect_proxy(action, GTK_WIDGET(menubutton));
g_signal_connect(action, "activate", G_CALLBACK(popup_menu), menu);

...

void
popup_menu(GtkAction *action, GtkMenu *menu)
{
    gtk_menu_popup(menu, NULL, NULL, NULL, NULL, 1, gtk_get_current_event_time());
}
...