diff options
-rw-r--r-- | include/cru/osx/gui/Window.hpp | 3 | ||||
-rw-r--r-- | include/cru/platform/gui/Window.hpp | 3 | ||||
-rw-r--r-- | include/cru/win/gui/Window.hpp | 3 | ||||
-rw-r--r-- | src/osx/gui/Window.mm | 16 | ||||
-rw-r--r-- | src/osx/gui/WindowPrivate.h | 2 |
5 files changed, 27 insertions, 0 deletions
diff --git a/include/cru/osx/gui/Window.hpp b/include/cru/osx/gui/Window.hpp index 2a81d38a..4606aa84 100644 --- a/include/cru/osx/gui/Window.hpp +++ b/include/cru/osx/gui/Window.hpp @@ -36,6 +36,9 @@ class OsxWindow : public OsxGuiResource, public INativeWindow { WindowStyleFlag GetStyleFlag() override; void SetStyleFlag(WindowStyleFlag flag) override; + String GetTitle() override; + void SetTitle(String title) override; + WindowVisibilityType GetVisibility() override; void SetVisibility(WindowVisibilityType visibility) override; diff --git a/include/cru/platform/gui/Window.hpp b/include/cru/platform/gui/Window.hpp index 9f17b976..0de5127e 100644 --- a/include/cru/platform/gui/Window.hpp +++ b/include/cru/platform/gui/Window.hpp @@ -53,6 +53,9 @@ struct INativeWindow : virtual IPlatformResource { virtual WindowStyleFlag GetStyleFlag() = 0; virtual void SetStyleFlag(WindowStyleFlag flag) = 0; + virtual String GetTitle() = 0; + virtual void SetTitle(String title) = 0; + virtual WindowVisibilityType GetVisibility() = 0; virtual void SetVisibility(WindowVisibilityType visibility) = 0; diff --git a/include/cru/win/gui/Window.hpp b/include/cru/win/gui/Window.hpp index baca8f00..8f79c138 100644 --- a/include/cru/win/gui/Window.hpp +++ b/include/cru/win/gui/Window.hpp @@ -30,6 +30,9 @@ class CRU_WIN_GUI_API WinNativeWindow : public WinNativeResource, WindowStyleFlag GetStyleFlag() override { return style_flag_; } void SetStyleFlag(WindowStyleFlag flag) override; + String GetTitle() override; + void SetTitle(String title) override; + WindowVisibilityType GetVisibility() override { return visibility_; } void SetVisibility(WindowVisibilityType visibility) override; diff --git a/src/osx/gui/Window.mm b/src/osx/gui/Window.mm index a0542147..3bea5543 100644 --- a/src/osx/gui/Window.mm +++ b/src/osx/gui/Window.mm @@ -186,6 +186,10 @@ void OsxWindowPrivate::CreateWindow() { [window_ setContentView:content_view]; + auto title_str = Convert(title_); + [window_ setTitle:(NSString*)title_str]; + CFRelease(title_str); + draw_layer_ = CreateLayer(content_rect.size); create_event_.Raise(nullptr); @@ -246,6 +250,18 @@ void OsxWindow::SetStyleFlag(WindowStyleFlag flag) { } } +String OsxWindow::GetTitle() { return p_->title_; } + +void OsxWindow::SetTitle(String title) { + p_->title_ = title; + + if (p_->window_) { + auto str = Convert(title); + [p_->window_ setTitle:(NSString*)str]; + CFRelease(str); + } +} + WindowVisibilityType OsxWindow::GetVisibility() { if (!p_->window_) return WindowVisibilityType::Hide; if ([p_->window_ isMiniaturized]) return WindowVisibilityType::Minimize; diff --git a/src/osx/gui/WindowPrivate.h b/src/osx/gui/WindowPrivate.h index 674ba70f..d2335e00 100644 --- a/src/osx/gui/WindowPrivate.h +++ b/src/osx/gui/WindowPrivate.h @@ -83,6 +83,8 @@ class OsxWindowPrivate { INativeWindow* parent_ = nullptr; WindowStyleFlag style_flag_ = WindowStyleFlag{}; + String title_; + Rect content_rect_; NSWindow* window_ = nil; |