From 124429985be8033a398b891f400f70a058330c87 Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Sun, 30 Jul 2017 00:36:18 +0200 Subject: Add menu shortcuts --- src/gui_menu.hh | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'src/gui_menu.hh') 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; -- cgit v1.2.3-70-g09d2