diff options
author | crupest <crupest@outlook.com> | 2018-09-23 21:07:19 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2018-09-23 21:07:19 +0800 |
commit | 800c98a732f82df09a98fddba91eddb5d675318d (patch) | |
tree | bd7722bebd51e8bb47e79468d70c0d99ef0df9ac /CruUI/ui/events/ui_event.h | |
parent | b7833b2d3243b008a2a726a72408f818070d8238 (diff) | |
parent | 796ba6e1e816ec87a106f2f7b501e38c99f059e1 (diff) | |
download | cru-800c98a732f82df09a98fddba91eddb5d675318d.tar.gz cru-800c98a732f82df09a98fddba91eddb5d675318d.tar.bz2 cru-800c98a732f82df09a98fddba91eddb5d675318d.zip |
Merge branch 'master' into textboxdev
Diffstat (limited to 'CruUI/ui/events/ui_event.h')
-rw-r--r-- | CruUI/ui/events/ui_event.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/CruUI/ui/events/ui_event.h b/CruUI/ui/events/ui_event.h index 4915d63d..a17067c7 100644 --- a/CruUI/ui/events/ui_event.h +++ b/CruUI/ui/events/ui_event.h @@ -215,6 +215,47 @@ namespace cru bool new_state_; }; + struct WindowNativeMessage + { + HWND hwnd; + int msg; + WPARAM w_param; + LPARAM l_param; + }; + + class WindowNativeMessageEventArgs : public UiEventArgs + { + public: + WindowNativeMessageEventArgs(Object* sender, Object* original_sender, const WindowNativeMessage& message) + : UiEventArgs(sender, original_sender), message_(message), result_(std::nullopt) + { + + } + WindowNativeMessageEventArgs(const WindowNativeMessageEventArgs& other) = default; + WindowNativeMessageEventArgs(WindowNativeMessageEventArgs&& other) = default; + WindowNativeMessageEventArgs& operator=(const WindowNativeMessageEventArgs& other) = default; + WindowNativeMessageEventArgs& operator=(WindowNativeMessageEventArgs&& other) = default; + ~WindowNativeMessageEventArgs() override = default; + + WindowNativeMessage GetWindowMessage() const + { + return message_; + } + + std::optional<LRESULT> GetResult() const + { + return result_; + } + + void SetResult(const std::optional<LRESULT> result) + { + result_ = result; + } + + private: + WindowNativeMessage message_; + std::optional<LRESULT> result_; + }; using UiEvent = Event<UiEventArgs>; using MouseEvent = Event<MouseEventArgs>; @@ -224,6 +265,7 @@ namespace cru using SizeChangedEvent = Event<SizeChangedEventArgs>; using FocusChangeEvent = Event<FocusChangeEventArgs>; using ToggleEvent = Event<ToggleEventArgs>; + using WindowNativeMessageEvent = Event<WindowNativeMessageEventArgs>; } } }
\ No newline at end of file |