From 08833937da98a7119195f980e82762becb563e28 Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 3 Oct 2021 13:48:15 +0800 Subject: ... --- src/osx/gui/Window.mm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src') diff --git a/src/osx/gui/Window.mm b/src/osx/gui/Window.mm index 239e175a..3ff94f68 100644 --- a/src/osx/gui/Window.mm +++ b/src/osx/gui/Window.mm @@ -7,6 +7,13 @@ #include #include +@interface WindowDelegate : NSObject +- (void)windowWillClose:(NSNotification*)notification; +- (void)windowDidExpose:(NSNotification*)notification; +- (void)windowDidUpdate:(NSNotification*)notification; +- (void)windowDidResize:(NSNotification*)notification; +@end + namespace cru::platform::gui::osx { namespace details { class OsxWindowPrivate { @@ -20,6 +27,12 @@ class OsxWindowPrivate { ~OsxWindowPrivate() = default; + public: + void OnWindowWillClose(); + void OnWindowDidExpose(); + void OnWindowDidUpdate(); + void OnWindowDidResize(); + private: OsxWindow* osx_window_; @@ -30,6 +43,13 @@ class OsxWindowPrivate { NSWindow* window_; }; + +void OsxWindowPrivate::OnWindowWillClose() { osx_window_->destroy_event_.Raise(nullptr); } +void OsxWindowPrivate::OnWindowDidExpose() { [window_ update]; } +void OsxWindowPrivate::OnWindowDidUpdate() { osx_window_->paint_event_.Raise(nullptr); } +void OsxWindowPrivate::OnWindowDidResize() { + osx_window_->resize_event_.Raise(osx_window_->GetClientSize()); +} } namespace { -- cgit v1.2.3