summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2018-12-05 15:22:48 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2018-12-05 17:33:05 -0500
commit4d7e9d5706ec7784e6d97cc4f0ac13585bf577f2 (patch)
treeffdb8ce976294be6ab0ae65dcbb1b417e2fdf1e8
parentd6b5c23579dc02d2f98fc1f48bf038c1070057fb (diff)
add new variant of ActionMap::find_action()
This is more useful when replacing ActionManager::get_action
-rw-r--r--libs/gtkmm2ext/bindings.cc20
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/bindings.h1
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; }