diff options
author | crupest <crupest@outlook.com> | 2020-10-28 16:17:20 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-10-28 16:17:20 +0800 |
commit | fde24556042b76863bdec34dcc213cb7298f68f9 (patch) | |
tree | a6ed8de1a5044c24b72a1b71dad21bb977b6b1be /include | |
parent | 9d4a37acbe66983654aa90dbd3aa3700038697b9 (diff) | |
download | cru-fde24556042b76863bdec34dcc213cb7298f68f9.tar.gz cru-fde24556042b76863bdec34dcc213cb7298f68f9.tar.bz2 cru-fde24556042b76863bdec34dcc213cb7298f68f9.zip |
...
Diffstat (limited to 'include')
-rw-r--r-- | include/cru/platform/native/Keyboard.hpp | 5 | ||||
-rw-r--r-- | include/cru/ui/ShortcutHub.hpp | 12 |
2 files changed, 17 insertions, 0 deletions
diff --git a/include/cru/platform/native/Keyboard.hpp b/include/cru/platform/native/Keyboard.hpp index 83c61bcc..8f53c5d6 100644 --- a/include/cru/platform/native/Keyboard.hpp +++ b/include/cru/platform/native/Keyboard.hpp @@ -1,4 +1,5 @@ #pragma once +#include <string_view> #include "cru/common/Bitmask.hpp" namespace cru::platform::native { @@ -117,4 +118,8 @@ struct KeyModifiers { static constexpr KeyModifier ctrl{0b10}; static constexpr KeyModifier alt{0b100}; }; + +std::u16string_view ToString(KeyCode key_code); +std::u16string ToString(KeyModifier key_modifier, + std::u16string_view separator = u"+"); } // namespace cru::platform::native diff --git a/include/cru/ui/ShortcutHub.hpp b/include/cru/ui/ShortcutHub.hpp index 7557b758..a1dfcb7d 100644 --- a/include/cru/ui/ShortcutHub.hpp +++ b/include/cru/ui/ShortcutHub.hpp @@ -4,6 +4,7 @@ #include "cru/common/Base.hpp" #include "cru/common/Event.hpp" #include "cru/platform/native/Keyboard.hpp" +#include "cru/ui/UiEvent.hpp" #include <cstddef> #include <functional> @@ -43,6 +44,14 @@ class ShortcutKeyBind { return !this->operator==(other); } + std::u16string ToString() { + std::u16string result = u"("; + result += platform::native::ToString(modifier_); + result += u")"; + result += platform::native::ToString(key_); + return result; + } + private: platform::native::KeyCode key_; platform::native::KeyModifier modifier_; @@ -95,6 +104,9 @@ class ShortcutHub : public Object { void Uninstall(); private: + void OnKeyDown(event::KeyEventArgs& event); + + private: std::unordered_map<ShortcutKeyBind, std::vector<ShortcutInfo>> map_; const std::vector<ShortcutInfo> empty_list_; |