diff options
Diffstat (limited to 'src/gui_menu.hh')
| -rw-r--r-- | src/gui_menu.hh | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/src/gui_menu.hh b/src/gui_menu.hh index e2af274..a6c6b54 100644 --- a/src/gui_menu.hh +++ b/src/gui_menu.hh @@ -17,11 +17,40 @@ public: Listener() {} }; + static const uint32_t CTRL; + static const uint32_t ALT; + static const uint32_t SHIFT; + static const uint32_t META; + + static const char ESC; + static const char UP; + static const char LEFT; + static const char RIGHT; + static const char DOWN; + static const char RETURN; + + struct Shortcut { + uint32_t const mask; + char const key; + bool const function; + + Shortcut() + : mask(0), key(0), function(false) { + } + Shortcut(uint32_t mask, char key) + : mask(mask), key(key), function(false) { + } + Shortcut(uint32_t mask, int function) + : mask(mask), key(function), function(true) { + } + }; + virtual ~GuiMenu() {} static GuiMenu* create(); - virtual void add_item(std::string const& id, std::string const& label) = 0; + virtual void add_item(std::string const& id, std::string const& label, + Shortcut const& shortcut = Shortcut()) = 0; // The returned menu lives as long as the root-menu, do not free // the pointer yourself virtual GuiMenu* add_menu(std::string const& label) = 0; |
