summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2018-12-05 17:32:02 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2018-12-05 17:33:05 -0500
commiteb48c14ec4b20aba225d8180d45d0c3d0c7d7825 (patch)
tree7c271d0242c477398261c84997b5d5097a03f2f9 /libs/gtkmm2ext
parent4d7e9d5706ec7784e6d97cc4f0ac13585bf577f2 (diff)
some ActionMap infrastructure to start removing ActionManager
Diffstat (limited to 'libs/gtkmm2ext')
-rw-r--r--libs/gtkmm2ext/bindings.cc5
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/bindings.h18
2 files changed, 20 insertions, 3 deletions
diff --git a/libs/gtkmm2ext/bindings.cc b/libs/gtkmm2ext/bindings.cc
index b1abcb0507..1c84a5a5ca 100644
--- a/libs/gtkmm2ext/bindings.cc
+++ b/libs/gtkmm2ext/bindings.cc
@@ -1174,6 +1174,7 @@ ActionMap::get_actions (ActionMap::Actions& acts)
}
}
+
RefPtr<Action>
ActionMap::find_action (const string& name)
{
@@ -1190,9 +1191,7 @@ ActionMap::find_action (const string& name)
RefPtr<Action>
ActionMap::find_action (char const * group_name, char const * action_name)
{
- string fullpath;
-
- fullpath = group_name;
+ string fullpath (group_name);
fullpath += '/';
fullpath += action_name;
diff --git a/libs/gtkmm2ext/gtkmm2ext/bindings.h b/libs/gtkmm2ext/gtkmm2ext/bindings.h
index 54f1f3eee9..93e8f4c1f5 100644
--- a/libs/gtkmm2ext/gtkmm2ext/bindings.h
+++ b/libs/gtkmm2ext/gtkmm2ext/bindings.h
@@ -139,6 +139,24 @@ class LIBGTKMM2EXT_API ActionMap {
};
+class LIBGTKMM2EXT_API ActionMapOwner {
+ protected:
+ Gtkmm2ext::ActionMap myactions;
+ public:
+ ActionMapOwner (std::string const & map_name) : myactions (map_name) {}
+ Glib::RefPtr<Gtk::Action> find_action (const std::string& name) { return myactions.find_action (name); }
+ Glib::RefPtr<Gtk::Action> find_action (char const * group_name, char const * action_name) { return myactions.find_action (group_name, action_name); }
+};
+
+class LIBGTKMM2EXT_API StaticActionMapOwner {
+ protected:
+ virtual Gtkmm2ext::ActionMap& my_actions() const = 0;
+ public:
+ virtual ~StaticActionMapOwner() {}
+ Glib::RefPtr<Gtk::Action> find_action (const std::string& name) { return my_actions().find_action (name); }
+ Glib::RefPtr<Gtk::Action> find_action (char const * group_name, char const * action_name) { return my_actions().find_action (group_name, action_name); }
+};
+
class LIBGTKMM2EXT_API Bindings {
public:
enum Operation {