From be84ddd03d3b59c0c27aa538d5ef5129f94d511c Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 23 Sep 2018 23:08:54 +0800 Subject: Add keyboard events to control. --- CruUI/ui/events/ui_event.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'CruUI/ui/events') diff --git a/CruUI/ui/events/ui_event.h b/CruUI/ui/events/ui_event.h index a17067c7..b042b706 100644 --- a/CruUI/ui/events/ui_event.h +++ b/CruUI/ui/events/ui_event.h @@ -257,6 +257,50 @@ namespace cru std::optional result_; }; + class KeyEventArgs : public UiEventArgs + { + public: + KeyEventArgs(Object* sender, Object* original_sender, int virtual_code) + : UiEventArgs(sender, original_sender), virtual_code_(virtual_code) + { + } + KeyEventArgs(const KeyEventArgs& other) = default; + KeyEventArgs(KeyEventArgs&& other) = default; + KeyEventArgs& operator=(const KeyEventArgs& other) = default; + KeyEventArgs& operator=(KeyEventArgs&& other) = default; + ~KeyEventArgs() override = default; + + int GetVirtualCode() const + { + return virtual_code_; + } + + private: + int virtual_code_; + }; + + class CharEventArgs : public UiEventArgs + { + public: + CharEventArgs(Object* sender, Object* original_sender, wchar_t c) + : UiEventArgs(sender, original_sender), c_(c) + { + } + CharEventArgs(const CharEventArgs& other) = default; + CharEventArgs(CharEventArgs&& other) = default; + CharEventArgs& operator=(const CharEventArgs& other) = default; + CharEventArgs& operator=(CharEventArgs&& other) = default; + ~CharEventArgs() override = default; + + wchar_t GetChar() const + { + return c_; + } + + private: + wchar_t c_; + }; + using UiEvent = Event; using MouseEvent = Event; using MouseButtonEvent = Event; @@ -266,6 +310,8 @@ namespace cru using FocusChangeEvent = Event; using ToggleEvent = Event; using WindowNativeMessageEvent = Event; + using KeyEvent = Event; + using CharEvent = Event; } } } \ No newline at end of file -- cgit v1.2.3