diff options
author | Yuqian Yang <crupest@outlook.com> | 2018-09-23 13:03:18 +0000 |
---|---|---|
committer | Yuqian Yang <crupest@outlook.com> | 2018-09-23 13:03:18 +0000 |
commit | 796ba6e1e816ec87a106f2f7b501e38c99f059e1 (patch) | |
tree | 6db4f99f3dc2f85fba3f8339da53849d04a5cfee /CruUI/ui/events/ui_event.h | |
parent | ad8ea7fc26b3e0807d11965d93c26a6ff51db226 (diff) | |
parent | 82f42a4103c168abd3605acad8ee4b9b4f00d79d (diff) | |
download | cru-796ba6e1e816ec87a106f2f7b501e38c99f059e1.tar.gz cru-796ba6e1e816ec87a106f2f7b501e38c99f059e1.tar.bz2 cru-796ba6e1e816ec87a106f2f7b501e38c99f059e1.zip |
Merge branch 'native_message_handler' into 'master'
Window native message event.
See merge request crupest/CruUI!1
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 |