From ed368423531b24e8735db0afe38c7486145caa56 Mon Sep 17 00:00:00 2001 From: crupest Date: Fri, 15 Oct 2021 20:35:17 +0800 Subject: ... --- src/osx/gui/UiApplication.mm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/osx/gui/UiApplication.mm') diff --git a/src/osx/gui/UiApplication.mm b/src/osx/gui/UiApplication.mm index d2e6fe30..4ac3d1df 100644 --- a/src/osx/gui/UiApplication.mm +++ b/src/osx/gui/UiApplication.mm @@ -1,7 +1,9 @@ #include "cru/osx/gui/UiApplication.hpp" #include "cru/osx/graphics/quartz/Factory.hpp" +#include "cru/osx/gui/Cursor.hpp" #include "cru/osx/gui/Window.hpp" +#include "cru/platform/graphics/Factory.hpp" #include "cru/platform/gui/UiApplication.hpp" #include "cru/platform/gui/Window.hpp" @@ -50,6 +52,8 @@ class OsxUiApplicationPrivate { std::vector windows_; + std::unique_ptr cursor_manager_; + std::unique_ptr quartz_graphics_factory_; }; @@ -64,6 +68,7 @@ OsxUiApplication::OsxUiApplication() : OsxGuiResource(this), p_(new details::OsxUiApplicationPrivate(this)) { [NSApp setDelegate:p_->app_delegate_]; p_->quartz_graphics_factory_ = std::make_unique(); + p_->cursor_manager_ = std::make_unique(this); } OsxUiApplication::~OsxUiApplication() {} @@ -143,6 +148,12 @@ INativeWindow* OsxUiApplication::CreateWindow(INativeWindow* parent, CreateWindo return window; } +ICursorManager* OsxUiApplication::GetCursorManager() { return p_->cursor_manager_.get(); } + +graphics::IGraphicsFactory* OsxUiApplication::GetGraphicsFactory() { + return p_->quartz_graphics_factory_.get(); +} + void OsxUiApplication::UnregisterWindow(OsxWindow* window) { p_->windows_.erase( std::remove(p_->windows_.begin(), p_->windows_.end(), static_cast(window)), @@ -150,8 +161,9 @@ void OsxUiApplication::UnregisterWindow(OsxWindow* window) { } } -@implementation AppDelegate -cru::platform::gui::osx::details::OsxUiApplicationPrivate* _p; +@implementation AppDelegate { + cru::platform::gui::osx::details::OsxUiApplicationPrivate* _p; +} - (id)init:(cru::platform::gui::osx::details::OsxUiApplicationPrivate*)p { _p = p; -- cgit v1.2.3