diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2005-11-26 00:06:46 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2005-11-26 00:06:46 +0000 |
commit | f69abbff90ac8b8426bb0c6e02a7f4d4a3fd5e6d (patch) | |
tree | 3f694b5bb3cdee16813e224eb183a2435605fe78 /gtk2_ardour/actions.cc | |
parent | 026f506bc6912f1374d21ccccf42542f749a6cb7 (diff) |
compiles and runs, but crashes ... duh
git-svn-id: svn://localhost/trunk/ardour2@113 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/actions.cc')
-rw-r--r-- | gtk2_ardour/actions.cc | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/gtk2_ardour/actions.cc b/gtk2_ardour/actions.cc index 5a16e0325d..4cb573eee0 100644 --- a/gtk2_ardour/actions.cc +++ b/gtk2_ardour/actions.cc @@ -23,6 +23,8 @@ #include <gtkmm/accelmap.h> #include <gtkmm/uimanager.h> +#include <pbd/error.h> + #include "actions.h" using namespace std; @@ -37,8 +39,21 @@ vector<RefPtr<Gtk::Action> > ActionManager::track_selection_sensitive_actions; vector<RefPtr<Gtk::Action> > ActionManager::plugin_selection_sensitive_actions; vector<RefPtr<Gtk::Action> > ActionManager::range_sensitive_actions; vector<RefPtr<Gtk::Action> > ActionManager::jack_sensitive_actions; +RefPtr<UIManager> ActionManager::ui_manager; string ActionManager::unbound_string = "--"; +void +ActionManager::init () +{ + ui_manager = UIManager::create (); + + try { + ui_manager->add_ui_from_file ("ardour-menus.xml"); + } catch (Glib::MarkupError& err) { + error << "badly formatted UI definition file" << endmsg; + } + +} RefPtr<Action> ActionManager::register_action (RefPtr<ActionGroup> group, string name, string label, slot<void> sl, guint key, Gdk::ModifierType mods) @@ -129,7 +144,7 @@ ActionManager::lookup_entry (const ustring accel_path, Gtk::AccelKey& key) void ActionManager::get_all_actions (vector<string>& names, vector<string>& paths, vector<string>& keys, vector<AccelKey>& bindings) { - ListHandle<RefPtr<ActionGroup> > uim_groups = ui_manager.get_action_groups (); + ListHandle<RefPtr<ActionGroup> > uim_groups = ui_manager->get_action_groups (); for (ListHandle<RefPtr<ActionGroup> >::iterator g = uim_groups.begin(); g != uim_groups.end(); ++g) { @@ -148,7 +163,7 @@ ActionManager::get_all_actions (vector<string>& names, vector<string>& paths, ve bool known = lookup_entry (accel_path, key); if (known) { - keys.push_back (ui_manager.get_accel_group()->name (key.get_key(), Gdk::ModifierType (key.get_mod()))); + keys.push_back (ui_manager->get_accel_group()->name (key.get_key(), Gdk::ModifierType (key.get_mod()))); } else { keys.push_back (unbound_string); } @@ -161,17 +176,17 @@ ActionManager::get_all_actions (vector<string>& names, vector<string>& paths, ve void ActionManager::add_action_group (RefPtr<ActionGroup> grp) { - ui_manager.insert_action_group (grp); + ui_manager->insert_action_group (grp); } Widget* ActionManager::get_widget (ustring name) { - return ui_manager.get_widget (name); + return ui_manager->get_widget (name); } RefPtr<Action> ActionManager::get_action (ustring name) { - return ui_manager.get_action (name); + return ui_manager->get_action (name); } |