diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2005-11-17 21:31:37 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2005-11-17 21:31:37 +0000 |
commit | cdc2d055f1ede3d9565dbf2b2d1abbf87a1f622c (patch) | |
tree | 2523a3b351add1113224052612864327f526929e /gtk2_ardour/actions.cc | |
parent | 5d515004903f75d8c18328c0bdb84008ae5bfe23 (diff) |
more fixes on the long road to compiling
git-svn-id: svn://localhost/trunk/ardour2@103 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/actions.cc')
-rw-r--r-- | gtk2_ardour/actions.cc | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/gtk2_ardour/actions.cc b/gtk2_ardour/actions.cc index c455b30ed0..86ca2284f3 100644 --- a/gtk2_ardour/actions.cc +++ b/gtk2_ardour/actions.cc @@ -29,21 +29,21 @@ using namespace std; using namespace Gtk; using namespace Glib; using namespace sigc; +using namespace ActionManager; -vector<Glib::RefPtr<Gtk::Action> > ActionManager::session_sensitive_actions; -vector<Glib::RefPtr<Gtk::Action> > ActionManager::region_list_selection_sensitive_actions; -vector<Glib::RefPtr<Gtk::Action> > ActionManager::region_selection_sensitive_actions; -vector<Glib::RefPtr<Gtk::Action> > ActionManager::track_selection_sensitive_actions; -vector<Glib::RefPtr<Gtk::Action> > ActionManager::plugin_selection_sensitive_actions; -vector<Glib::RefPtr<Gtk::Action> > ActionManager::range_sensitive_actions; -vector<Glib::RefPtr<Gtk::Action> > ActionManager::jack_sensitive_actions; +vector<RefPtr<Gtk::Action> > ActionManager::session_sensitive_actions; +vector<RefPtr<Gtk::Action> > ActionManager::region_list_selection_sensitive_actions; +vector<RefPtr<Gtk::Action> > ActionManager::region_selection_sensitive_actions; +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; +string ActionManager::unbound_string = "--"; -namespace ActionManager { - -static vector<Glib::RefPtr<UIManager> > ui_managers; +static vector<RefPtr<UIManager> > ui_managers; void -register_ui_manager (Glib::RefPtr<UIManager> uim) +register_ui_manager (RefPtr<UIManager> uim) { ui_managers.push_back (uim); } @@ -119,7 +119,7 @@ register_toggle_action (RefPtr<ActionGroup> group, string name, string label, sl return act; } -bool lookup_entry (const Glib::ustring accel_path, Gtk::AccelKey& key) +bool lookup_entry (const ustring accel_path, Gtk::AccelKey& key) { GtkAccelKey gkey; bool known = gtk_accel_map_lookup_entry (accel_path.c_str(), &gkey); @@ -134,9 +134,20 @@ bool lookup_entry (const Glib::ustring accel_path, Gtk::AccelKey& key) } void +merge_actions (RefPtr<ActionGroup> dst, const RefPtr<ActionGroup> src) +{ + ListHandle<RefPtr<Action> > group_actions = src->get_actions(); + + for (ListHandle<RefPtr<Action> >::iterator a = group_actions.begin(); a != group_actions.end(); ++a) { + RefPtr<Action> act = Action::create ((*a)->get_name(), (*a)->property_label()); + dst->add (act); + } +} + +void get_all_actions (vector<string>& names, vector<string>& paths, vector<string>& keys, vector<AccelKey>& bindings) { - for (vector<Glib::RefPtr<UIManager> >::iterator u = ui_managers.begin(); u != ui_managers.end(); ++u) { + for (vector<RefPtr<UIManager> >::iterator u = ui_managers.begin(); u != ui_managers.end(); ++u) { ListHandle<RefPtr<ActionGroup> > uim_groups = (*u)->get_action_groups (); @@ -159,7 +170,7 @@ get_all_actions (vector<string>& names, vector<string>& paths, vector<string>& k if (known) { keys.push_back ((*u)->get_accel_group()->name (key.get_key(), Gdk::ModifierType (key.get_mod()))); } else { - keys.push_back ("--"); + keys.push_back (unbound_string); } bindings.push_back (AccelKey (key.get_key(), Gdk::ModifierType (key.get_mod()))); @@ -167,5 +178,3 @@ get_all_actions (vector<string>& names, vector<string>& paths, vector<string>& k } } } - -} |