From 560c0ead613658a2b7444907c3d1d69e49be8c32 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 27 Jan 2022 21:21:51 +0800 Subject: ... --- src/ui/controls/Button.cpp | 5 +++-- src/ui/controls/Control.cpp | 8 ++++---- src/ui/controls/TextBox.cpp | 5 ++++- 3 files changed, 11 insertions(+), 7 deletions(-) (limited to 'src/ui/controls') diff --git a/src/ui/controls/Button.cpp b/src/ui/controls/Button.cpp index 0f122650..887bcae6 100644 --- a/src/ui/controls/Button.cpp +++ b/src/ui/controls/Button.cpp @@ -4,6 +4,7 @@ #include "cru/platform/graphics/Brush.hpp" #include "cru/platform/gui/Cursor.hpp" #include "cru/platform/gui/UiApplication.hpp" +#include "cru/ui/ThemeManager.hpp" #include "cru/ui/UiManager.hpp" #include "cru/ui/helper/ClickDetector.hpp" #include "cru/ui/render/BorderRenderObject.hpp" @@ -16,8 +17,8 @@ Button::Button() : click_detector_(this) { render_object_->SetBorderEnabled(true); auto default_button_style = - UiManager::GetInstance()->GetThemeResources()->button_style.get(); - GetStyleRuleSet()->SetParent(default_button_style); + ThemeManager::GetInstance()->GetResourceStyleRuleSet(u"button.style"); + GetStyleRuleSet()->SetParent(std::move(default_button_style)); } Button::~Button() = default; diff --git a/src/ui/controls/Control.cpp b/src/ui/controls/Control.cpp index 44da7f6f..04199d1d 100644 --- a/src/ui/controls/Control.cpp +++ b/src/ui/controls/Control.cpp @@ -16,9 +16,9 @@ using platform::gui::IUiApplication; using platform::gui::SystemCursorType; Control::Control() { - style_rule_set_ = std::make_unique(); + style_rule_set_ = std::make_shared(); style_rule_set_bind_ = - std::make_unique(this, style_rule_set_.get()); + std::make_unique(this, style_rule_set_); MouseEnterEvent()->Direct()->AddHandler([this](events::MouseEventArgs&) { this->is_mouse_over_ = true; @@ -99,8 +99,8 @@ void Control::SetCursor(std::shared_ptr cursor) { } } -style::StyleRuleSet* Control::GetStyleRuleSet() { - return style_rule_set_.get(); +std::shared_ptr Control::GetStyleRuleSet() { + return style_rule_set_; } void Control::AddChild(Control* control, const Index position) { diff --git a/src/ui/controls/TextBox.cpp b/src/ui/controls/TextBox.cpp index bf72b494..20e89028 100644 --- a/src/ui/controls/TextBox.cpp +++ b/src/ui/controls/TextBox.cpp @@ -1,5 +1,6 @@ #include "cru/ui/controls/TextBox.hpp" +#include "cru/ui/ThemeManager.hpp" #include "cru/ui/UiManager.hpp" #include "cru/ui/render/BorderRenderObject.hpp" #include "cru/ui/render/CanvasRenderObject.hpp" @@ -16,6 +17,7 @@ TextBox::TextBox() : border_render_object_(new BorderRenderObject()), scroll_render_object_(new ScrollRenderObject()) { const auto theme_resources = UiManager::GetInstance()->GetThemeResources(); + auto theme_manager = ThemeManager::GetInstance(); text_render_object_ = std::make_unique( theme_resources->text_brush, theme_resources->default_font, @@ -37,7 +39,8 @@ TextBox::TextBox() border_render_object_->SetBorderEnabled(true); - GetStyleRuleSet()->SetParent(theme_resources->text_box_style.get()); + GetStyleRuleSet()->SetParent( + theme_manager->GetResourceStyleRuleSet(u"textbox.style")); } TextBox::~TextBox() {} -- cgit v1.2.3