Next you should create a UIManager
and add the
ActionGroup
to the UIManager
with
insert_action_group()
At this point is also a good idea to
tell the parent window to respond to the specified keyboard shortcuts, by using
add_accel_group()
.
For instance,
Glib::RefPtr<Gtk::UIManager> m_refUIManager = Gtk::UIManager::create(); m_refUIManager->insert_action_group(m_refActionGroup); add_accel_group(m_refUIManager->get_accel_group());
Then, you can define the actual visible layout of the menus and toolbars, and
add the UI layout to the UIManager
. This "ui
string" uses an XML format, in which you should mention the names of the
actions that you have already created. For instance:
Glib::ustring ui_info = "<ui>" " <menubar name='MenuBar'>" " <menu action='MenuFile'>" " <menuitem action='New'/>" " <menuitem action='Open'/>" " <separator/>" " <menuitem action='Quit'/>" " </menu>" " <menu action='MenuEdit'>" " <menuitem action='Cut'/>" " <menuitem action='Copy'/>" " <menuitem action='Paste'/>" " </menu>" " </menubar>" " <toolbar name='ToolBar'>" " <toolitem action='Open'/>" " <toolitem action='Quit'/>" " </toolbar>" "</ui>"; m_refUIManager->add_ui_from_string(ui_info);
To instantiate a Gtk::MenuBar
or
Gtk::Toolbar
which you can actually show, you should use
the UIManager::get_widget()
method, and then add the widget
to a container. For instance:
Gtk::Widget* pMenubar = m_refUIManager->get_widget("/MenuBar"); pBox->add(*pMenuBar, Gtk::PACK_SHRINK);