diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2015-08-04 13:57:51 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-02-22 15:31:23 -0500 |
commit | e13322e7f5bb1d7f31a867fa10b5b1ef0b8ea804 (patch) | |
tree | df1fd4f53e1a042433ba6fc024d955a92ff24a59 /libs/gtkmm2ext/gtkmm2ext/bindings.h | |
parent | a13a8da8ac977b247b7c8d8b4f2cfcddfc8996e7 (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.h | 18 |
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; |