X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fgtkmm2ext%2Fbindings.cc;h=cf98bbca4dd6b2080411497d00b6a32436951bef;hb=dd4c788d3e21b4f697f7eb6f2e64bc0d94ebf7fb;hp=11b55932a4d1336f13c5b05f05bff4173a53646b;hpb=3421c6e8141e0c31ff59c8211aa57d7566a51db8;p=ardour.git diff --git a/libs/gtkmm2ext/bindings.cc b/libs/gtkmm2ext/bindings.cc index 11b55932a4..cf98bbca4d 100644 --- a/libs/gtkmm2ext/bindings.cc +++ b/libs/gtkmm2ext/bindings.cc @@ -781,6 +781,7 @@ Bindings::save_all_bindings_as_html (ostream& ostr) ostr << "\n\n"; ostr << PROGRAM_NAME; ostr << "\n"; + ostr << "\n"; ostr << "\n\n"; @@ -1173,6 +1174,7 @@ ActionMap::get_actions (ActionMap::Actions& acts) } } + RefPtr ActionMap::find_action (const string& name) { @@ -1182,9 +1184,76 @@ ActionMap::find_action (const string& name) return a->second; } + cerr << "Failed to find action: [" << name << ']' << endl; + return RefPtr(); +} + +RefPtr +ActionMap::find_toggle_action (const string& name) +{ + RefPtr act = find_action (name); + + if (!act) { + return RefPtr(); + } + + return Glib::RefPtr::cast_dynamic (act); +} + +RefPtr +ActionMap::find_radio_action (const string& name) +{ + RefPtr act = find_action (name); + + if (!act) { + return RefPtr(); + } + + return Glib::RefPtr::cast_dynamic (act); +} + +RefPtr +ActionMap::find_action (char const * group_name, char const * action_name) +{ + string fullpath (group_name); + fullpath += '/'; + fullpath += action_name; + + _ActionMap::iterator a = _actions.find (fullpath); + + if (a != _actions.end()) { + return a->second; + } + + cerr << "Failed to find action (2): [" << fullpath << ']' << endl; return RefPtr(); } +RefPtr +ActionMap::find_toggle_action (char const * group_name, char const * action_name) +{ + RefPtr act = find_action (group_name, action_name); + + if (!act) { + return RefPtr(); + } + + return Glib::RefPtr::cast_dynamic (act); +} + +RefPtr +ActionMap::find_radio_action (char const * group_name, char const * action_name) +{ + RefPtr act = find_action (group_name, action_name); + + if (!act) { + return RefPtr(); + } + + return Glib::RefPtr::cast_dynamic (act); +} + + RefPtr ActionMap::create_action_group (const string& name) {