aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-01-29 18:10:21 +0800
committercrupest <crupest@outlook.com>2022-01-29 18:10:21 +0800
commit406d1d2be02e83f897b65789897d81a060142ace (patch)
tree0869587df0680bb482b55359efdf3cba57d3eab0
parente7da93f75ba57fa4ab1ae1fd8053266ed09f92d8 (diff)
downloadcru-406d1d2be02e83f897b65789897d81a060142ace.tar.gz
cru-406d1d2be02e83f897b65789897d81a060142ace.tar.bz2
cru-406d1d2be02e83f897b65789897d81a060142ace.zip
...
-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;