diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2018-12-05 15:22:48 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2018-12-05 17:33:05 -0500 |
commit | 4d7e9d5706ec7784e6d97cc4f0ac13585bf577f2 (patch) | |
tree | ffdb8ce976294be6ab0ae65dcbb1b417e2fdf1e8 /libs | |
parent | d6b5c23579dc02d2f98fc1f48bf038c1070057fb (diff) |
add new variant of ActionMap::find_action()
This is more useful when replacing ActionManager::get_action
Diffstat (limited to 'libs')
-rw-r--r-- | libs/gtkmm2ext/bindings.cc | 20 | ||||
-rw-r--r-- | libs/gtkmm2ext/gtkmm2ext/bindings.h | 1 |
2 files changed, 21 insertions, 0 deletions
diff --git a/libs/gtkmm2ext/bindings.cc b/libs/gtkmm2ext/bindings.cc index 9d61847a0e..b1abcb0507 100644 --- a/libs/gtkmm2ext/bindings.cc +++ b/libs/gtkmm2ext/bindings.cc @@ -1183,6 +1183,26 @@ ActionMap::find_action (const string& name) return a->second; } + cerr << "Failed to find action: [" << name << ']' << endl; + return RefPtr<Action>(); +} + +RefPtr<Action> +ActionMap::find_action (char const * group_name, char const * action_name) +{ + string fullpath; + + 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<Action>(); } diff --git a/libs/gtkmm2ext/gtkmm2ext/bindings.h b/libs/gtkmm2ext/gtkmm2ext/bindings.h index 81f372ae31..54f1f3eee9 100644 --- a/libs/gtkmm2ext/gtkmm2ext/bindings.h +++ b/libs/gtkmm2ext/gtkmm2ext/bindings.h @@ -106,6 +106,7 @@ class LIBGTKMM2EXT_API ActionMap { const char* name, const char* label, sigc::slot<void> sl); Glib::RefPtr<Gtk::Action> find_action (const std::string& name); + Glib::RefPtr<Gtk::Action> find_action (char const * group_name, char const * action_name); void set_bindings (Bindings*); Bindings* bindings() const { return _bindings; } |