- GtkWidget *menu, *item, *parent, *subMenu;
- const char *menuText, *menuCommand;
- WidgetStack menuStack;
-
- parent = gtk_menu_item_new_with_label (pPlugIn->getMenuName());
- gtk_widget_show (parent);
- gtk_container_add (GTK_CONTAINER (plugin_menu), parent);
-
- std::size_t nCount = pPlugIn->getCommandCount();
- if (nCount > 0)
- {
- menu = gtk_menu_new();
- if (g_Layout_enableDetachableMenus.m_value)
- menu_tearoff (GTK_MENU(menu));
- while (nCount > 0)
- {
- menuText = pPlugIn->getCommandTitle(--nCount);
- menuCommand = pPlugIn->getCommand(nCount);
-
- if (menuText != 0 && strlen(menuText) > 0)
- {
- if (!strcmp(menuText, "-"))
- {
- item = gtk_menu_item_new();
- gtk_widget_set_sensitive (item, FALSE);
- }
- else if (!strcmp(menuText, ">"))
- {
- menuText = pPlugIn->getCommandTitle(--nCount);
- menuCommand = pPlugIn->getCommand(nCount);
- if (!strcmp(menuText, "-") || !strcmp(menuText, ">") || !strcmp(menuText, "<"))
- {
- globalErrorStream() << pPlugIn->getMenuName() << " Invalid title (" << menuText << ") for submenu.\n";
- continue;
- }
-
- item = gtk_menu_item_new_with_label(menuText);
- gtk_widget_show (item);
- gtk_container_add (GTK_CONTAINER (menu), item);
-
- subMenu = gtk_menu_new();
- gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), subMenu);
- menuStack.push(menu);
- menu = subMenu;
- continue;
+ ui::Widget item{ui::null}, parent{ui::null};
+ ui::Menu menu{ui::null}, subMenu{ui::null};
+ const char *menuText, *menuCommand;
+ std::stack<ui::Menu> menuStack;
+
+ parent = ui::MenuItem(pPlugIn->getMenuName());
+ parent.show();
+ plugin_menu.add(parent);
+
+ std::size_t nCount = pPlugIn->getCommandCount();
+ if (nCount > 0) {
+ menu = ui::Menu(ui::New);
+ if (g_Layout_enableDetachableMenus.m_value) {
+ menu_tearoff(menu);