diff options
Diffstat (limited to 'include/cru')
-rw-r--r-- | include/cru/osx/gui/Window.hpp | 44 |
1 files changed, 33 insertions, 11 deletions
diff --git a/include/cru/osx/gui/Window.hpp b/include/cru/osx/gui/Window.hpp index 6bb6b747..a247c79e 100644 --- a/include/cru/osx/gui/Window.hpp +++ b/include/cru/osx/gui/Window.hpp @@ -49,17 +49,27 @@ class OsxWindow : public OsxGuiResource, public INativeWindow { std::unique_ptr<graphics::IPainter> BeginPaint() override; - IEvent<std::nullptr_t>* DestroyEvent() override; - IEvent<std::nullptr_t>* PaintEvent() override; - IEvent<Size>* ResizeEvent() override; - IEvent<FocusChangeType>* FocusEvent() override; - IEvent<MouseEnterLeaveType>* MouseEnterLeaveEvent() override; - IEvent<Point>* MouseMoveEvent() override; - IEvent<NativeMouseButtonEventArgs>* MouseDownEvent() override; - IEvent<NativeMouseButtonEventArgs>* MouseUpEvent() override; - IEvent<NativeMouseWheelEventArgs>* MouseWheelEvent() override; - IEvent<NativeKeyEventArgs>* KeyDownEvent() override; - IEvent<NativeKeyEventArgs>* KeyUpEvent() override; + IEvent<std::nullptr_t>* DestroyEvent() override { return &destroy_event_; } + IEvent<std::nullptr_t>* PaintEvent() override { return &paint_event_; } + IEvent<Size>* ResizeEvent() override { return &resize_event_; } + IEvent<FocusChangeType>* FocusEvent() override { return &focus_event_; } + IEvent<MouseEnterLeaveType>* MouseEnterLeaveEvent() override { + return &mouse_enter_leave_event_; + } + IEvent<Point>* MouseMoveEvent() override { return &mouse_move_event_; } + IEvent<NativeMouseButtonEventArgs>* MouseDownEvent() override { + return &mouse_down_event_; + } + IEvent<NativeMouseButtonEventArgs>* MouseUpEvent() override { + return &mouse_up_event_; + } + IEvent<NativeMouseWheelEventArgs>* MouseWheelEvent() override { + return &mouse_wheel_event_; + } + IEvent<NativeKeyEventArgs>* KeyDownEvent() override { + return &key_down_event_; + } + IEvent<NativeKeyEventArgs>* KeyUpEvent() override { return &key_up_event_; } IInputMethodContext* GetInputMethodContext() override; @@ -68,5 +78,17 @@ class OsxWindow : public OsxGuiResource, public INativeWindow { private: std::unique_ptr<details::OsxWindowPrivate> p_; + + Event<std::nullptr_t> destroy_event_; + Event<std::nullptr_t> paint_event_; + Event<Size> resize_event_; + Event<FocusChangeType> focus_event_; + Event<MouseEnterLeaveType> mouse_enter_leave_event_; + Event<Point> mouse_move_event_; + Event<NativeMouseButtonEventArgs> mouse_down_event_; + Event<NativeMouseButtonEventArgs> mouse_up_event_; + Event<NativeMouseWheelEventArgs> mouse_wheel_event_; + Event<NativeKeyEventArgs> key_down_event_; + Event<NativeKeyEventArgs> key_up_event_; }; } // namespace cru::platform::gui::osx |