UIManager
Έπειτα θα πρέπει να δημιουργήσετε μια UIManager και να προσθέσετε την ActionGroup στην UIManager με την insert_action_group(). Σε αυτό το σημείο είναι επίσης καλή ιδέα να πείτε στο γονικό παράθυρο να απαντήσει στις καθορισμένες συντομεύσεις πληκτρολογίου, χρησιμοποιώντας add_accel_group().
Για παράδειγμα,
Glib::RefPtr<Gtk::UIManager> m_refUIManager = Gtk::UIManager::create(); m_refUIManager->insert_action_group(m_refActionGroup); add_accel_group(m_refUIManager->get_accel_group());
Έπειτα, μπορείτε να ορίσετε την ενεργή ορατή διάταξη των μενού και εργαλειοθηκών και να προσθέσετε τη διάταξη γραφικής διεπαφής στην UIManager. Αυτή η "συμβολοσειρά γραφικής διεπαφής" χρησιμοποιεί μια μορφή XML, στην οποία θα πρέπει να αναφέρετε τα ονόματα των ενεργειών που έχετε ήδη δημιουργήσει. Για παράδειγμα:
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);
Να θυμάστε ότι αυτά τα ονόματα είναι απλά αναγνωριστικά που χρησιμοποιούμε όταν δημιουργούμε τις ενέργειες. Δεν είναι το κείμενο που θα δει ο χρήστης στα μενού και τις εργαλειοθήκες. Δίνουμε αυτά τα αναγνώσιμα από άνθρωπο ονόματα όταν δημιουργούμε τις ενέργειες.
Για δημιουργία μιας Gtk::MenuBar ή Gtk::Toolbar την οποία μπορείτε στην πραγματικότητα να εμφανίσετε, θα πρέπει να χρησιμοποιήσετε τη μέθοδο UIManager::get_widget() και έπειτα να προσθέσετε το γραφικό συστατικό σε έναν περιέκτη. Για παράδειγμα:
Gtk::Widget* pMenubar = m_refUIManager->get_widget("/MenuBar"); pBox->add(*pMenuBar, Gtk::PACK_SHRINK);