aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/cru/osx/gui/Window.hpp3
-rw-r--r--include/cru/platform/gui/Window.hpp3
-rw-r--r--include/cru/win/gui/Window.hpp3
-rw-r--r--src/osx/gui/Window.mm16
-rw-r--r--src/osx/gui/WindowPrivate.h2
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;