summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext/gtkmm2ext/bindings.h
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2015-08-04 13:57:51 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2016-02-22 15:31:23 -0500
commite13322e7f5bb1d7f31a867fa10b5b1ef0b8ea804 (patch)
treedf1fd4f53e1a042433ba6fc024d955a92ff24a59 /libs/gtkmm2ext/gtkmm2ext/bindings.h
parenta13a8da8ac977b247b7c8d8b4f2cfcddfc8996e7 (diff)
bindings: prevent double registration and double signal connection, and provide get_all_actions() methods
Diffstat (limited to 'libs/gtkmm2ext/gtkmm2ext/bindings.h')
-rw-r--r--libs/gtkmm2ext/gtkmm2ext/bindings.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/libs/gtkmm2ext/gtkmm2ext/bindings.h b/libs/gtkmm2ext/gtkmm2ext/bindings.h
index 7685d8cf32..8dff6d2372 100644
--- a/libs/gtkmm2ext/gtkmm2ext/bindings.h
+++ b/libs/gtkmm2ext/gtkmm2ext/bindings.h
@@ -23,6 +23,8 @@ class LIBGTKMM2EXT_API KeyboardKey
KeyboardKey (uint32_t state, uint32_t keycode);
+ static KeyboardKey null_key() { return KeyboardKey (0, 0); }
+
uint32_t state() const { return _val >> 32; }
uint32_t key() const { return _val & 0xffff; }
@@ -96,6 +98,9 @@ class LIBGTKMM2EXT_API ActionMap {
Glib::RefPtr<Gtk::Action> find_action (const std::string& name);
+ typedef std::vector<Glib::RefPtr<Gtk::Action> > Actions;
+ void get_actions (Actions&);
+
private:
typedef std::map<std::string, Glib::RefPtr<Gtk::Action> > _ActionMap;
_ActionMap actions;
@@ -129,12 +134,23 @@ class LIBGTKMM2EXT_API Bindings {
void save (XMLNode& root);
void set_action_map (ActionMap&);
-
+
static void set_ignored_state (int mask) {
_ignored_state = mask;
}
static uint32_t ignored_state() { return _ignored_state; }
+ void get_all_actions (std::vector<std::string>& names,
+ std::vector<std::string>& paths,
+ std::vector<std::string>& tooltips,
+ std::vector<std::string>& keys,
+ std::vector<KeyboardKey>& bindings);
+
+ void get_all_actions (std::vector<std::string>& groups,
+ std::vector<std::string>& paths,
+ std::vector<std::string>& tooltips,
+ std::vector<KeyboardKey>& bindings);
+
private:
typedef std::map<KeyboardKey,Glib::RefPtr<Gtk::Action> > KeybindingMap;