From 82f42a4103c168abd3605acad8ee4b9b4f00d79d Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 23 Sep 2018 21:00:46 +0800 Subject: Add native message handler event in Window. --- CruUI/ui/events/ui_event.h | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'CruUI/ui/events') 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 GetResult() const + { + return result_; + } + + void SetResult(const std::optional result) + { + result_ = result; + } + + private: + WindowNativeMessage message_; + std::optional result_; + }; using UiEvent = Event; using MouseEvent = Event; @@ -224,6 +265,7 @@ namespace cru using SizeChangedEvent = Event; using FocusChangeEvent = Event; using ToggleEvent = Event; + using WindowNativeMessageEvent = Event; } } } \ No newline at end of file -- cgit v1.2.3