From a3b0f8c576796b97ff4ae96b5bae2186c3eb8a2c Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 15 Jan 2010 17:50:03 +0000 Subject: tidy up and abstract the GtkApplication concept a bit for OS X integration git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@6496 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/ardour_ui_ed.cc | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'gtk2_ardour/ardour_ui_ed.cc') diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc index b795bc5ae8..30e8488106 100644 --- a/gtk2_ardour/ardour_ui_ed.cc +++ b/gtk2_ardour/ardour_ui_ed.cc @@ -42,6 +42,7 @@ #include "utils.h" #include +#include #include #include @@ -851,10 +852,29 @@ ARDOUR_UI::build_menu_bar () void ARDOUR_UI::use_menubar_as_top_menubar () { -#ifdef GTKOSX - gtk_application_set_menu_bar ((GtkMenuShell*) menu_bar->gobj()); - // ige_mac_menu_set_quit_menu_item (some_item->gobj()); -#endif + Gtk::Widget* widget; + Application* app = Application::instance (); + + /* Quit will be taken of separately */ + + if ((widget = ActionManager::get_widget ("/ui/Main/Session/Quit"))) { + widget->hide (); + } + + GtkApplicationMenuGroup* group = app->add_app_menu_group (); + + if ((widget = ActionManager::get_widget ("/ui/Main/Help/About"))) { + app->add_app_menu_item (group, dynamic_cast(widget)); + } + + if ((widget = ActionManager::get_widget ("/ui/Main/WindowMenu/ToggleOptionsEditor"))) { + app->add_app_menu_item (group, dynamic_cast(widget)); + } + + app->set_menu_bar (*menu_bar); + + app->ShouldQuit.connect (sigc::mem_fun (*this, &UI::quit)); + app->ShouldLoad.connect (sigc::mem_fun (*this, &ARDOUR_UI::idle_load)); } void -- cgit v1.2.3