summaryrefslogtreecommitdiff
path: root/gtk2_ardour/actions.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2005-11-26 00:06:46 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2005-11-26 00:06:46 +0000
commitf69abbff90ac8b8426bb0c6e02a7f4d4a3fd5e6d (patch)
tree3f694b5bb3cdee16813e224eb183a2435605fe78 /gtk2_ardour/actions.cc
parent026f506bc6912f1374d21ccccf42542f749a6cb7 (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.cc25
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);
}