Browse Source

Added possibility to modify menus at runtime

merge-requests/365/head
eidheim 10 years ago
parent
commit
827c69a425
  1. 10
      src/juci.cc
  2. 4
      src/menu.cc
  3. 6
      src/menu.h

10
src/juci.cc

@ -80,16 +80,12 @@ void Application::on_startup() {
Menu::get().build();
auto object = Menu::get().builder->get_object("juci-menu");
auto juci_menu = Glib::RefPtr<Gio::Menu>::cast_dynamic(object);
object = Menu::get().builder->get_object("window-menu");
auto window_menu = Glib::RefPtr<Gio::Menu>::cast_dynamic(object);
if (!juci_menu || !window_menu) {
if (!Menu::get().juci_menu || !Menu::get().window_menu) {
std::cerr << "Menu not found." << std::endl;
}
else {
set_app_menu(juci_menu);
set_menubar(window_menu);
set_app_menu(Menu::get().juci_menu);
set_menubar(Menu::get().window_menu);
}
}

4
src/menu.cc

@ -404,6 +404,10 @@ void Menu::build() {
try {
builder->add_from_string(ui_xml);
auto object = Menu::get().builder->get_object("juci-menu");
juci_menu = Glib::RefPtr<Gio::Menu>::cast_dynamic(object);
object = Menu::get().builder->get_object("window-menu");
window_menu = Glib::RefPtr<Gio::Menu>::cast_dynamic(object);
}
catch (const Glib::Error &ex) {
std::cerr << "building menu failed: " << ex.what();

6
src/menu.h

@ -19,8 +19,12 @@ public:
void set_keys();
void build();
Glib::RefPtr<Gtk::Builder> builder;
Glib::RefPtr<Gio::Menu> juci_menu;
Glib::RefPtr<Gio::Menu> window_menu;
private:
Glib::RefPtr<Gtk::Builder> builder;
std::string ui_xml;
};
#endif // JUCI_MENU_H_

Loading…
Cancel
Save