Hi in the course of porting our app to latest GTKMM 3.91.2 API(s), I encountered some issues where I wonder whether those are GTK(MM) bugs or rather intentional.
First of all, I replaced Gtk::UIManager code occurrences by Gtk::Builder code. And for instance a popup menu which was previously constructed with UIManager like this: uiManager = Gtk::UIManager::create(); uiManager->insert_action_group(actionGroup); Glib::ustring ui_info = "<ui>" " <popup name='PopupMenuInsideDimRegion'>" " <menuitem action='SplitDimZone'/>" " <menuitem action='DeleteDimZone'/>" " </popup>" "</ui>"; uiManager->add_ui_from_string(ui_info); popup_menu_inside_dimregion = dynamic_cast<Gtk::Menu*>( uiManager->get_widget("/PopupMenuInsideDimRegion") ); with Builder it now looks like this: uiBuilder = Gtk::Builder::create(); Glib::ustring ui_info = "<interface>" " <menu id='menu-PopupMenuInsideDimRegion'>" " <section>" " <item id='item-split'>" " <attribute name='label' translatable='yes'>Split Dimension Zone</attribute>" " <attribute name='action'>PopupMenuInsideDimRegion.SplitDimZone</attribute>" " </item>" " <item id='item-delete'>" " <attribute name='label' translatable='yes'>Delete Dimension Zone</attribute>" " <attribute name='action'>PopupMenuInsideDimRegion.DeleteDimZone</attribute>" " </item>" " </section>" " </menu>" "</interface>"; uiBuilder->add_from_string(ui_info); popup_menu_inside_dimregion = new Gtk::Menu( Glib::RefPtr<Gio::Menu>::cast_dynamic( uiBuilder->get_object("menu-PopupMenuInsideDimRegion") ) ); Now the problem is, that add_from_string() throws the following exception: Attribute "id" invalid for element "item" Is that a bug? If that is intentional, how should it be possible to query an item object instead? Because we need to query menu items to change their label at runtime like this: auto menuItemSplit = Glib::RefPtr<Gio::MenuItem>::cast_dynamic( uiBuilder->get_object("item-split") ); menuItemSplit->set_label( (bSomeCondition) ? _("Some text") : _("An alternative text") ); Thanks! CU Christian _______________________________________________ gtkmm-list mailing list gtkmm-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtkmm-list