diff options
Diffstat (limited to 'src/ui/controls')
-rw-r--r-- | src/ui/controls/button.cpp | 22 | ||||
-rw-r--r-- | src/ui/controls/container.cpp | 4 | ||||
-rw-r--r-- | src/ui/controls/text_block.cpp | 14 |
3 files changed, 22 insertions, 18 deletions
diff --git a/src/ui/controls/button.cpp b/src/ui/controls/button.cpp index 2822f6db..b7f972be 100644 --- a/src/ui/controls/button.cpp +++ b/src/ui/controls/button.cpp @@ -1,18 +1,16 @@ #include "cru/ui/controls/button.hpp" #include <memory> +#include "../helper.hpp" #include "cru/platform/graph/brush.hpp" -#include "cru/platform/graph/graph_factory.hpp" #include "cru/platform/native/cursor.hpp" -#include "cru/platform/native/native_window.hpp" #include "cru/platform/native/ui_application.hpp" #include "cru/ui/render/border_render_object.hpp" #include "cru/ui/ui_manager.hpp" #include "cru/ui/window.hpp" namespace cru::ui::controls { -using platform::native::GetSystemCursor; -using platform::native::SystemCursor; +using cru::platform::native::SystemCursorType; namespace { void Set(render::BorderRenderObject* o, const ButtonStateStyle& s) { @@ -22,12 +20,17 @@ void Set(render::BorderRenderObject* o, const ButtonStateStyle& s) { o->SetForegroundBrush(s.foreground_brush); o->SetBackgroundBrush(s.background_brush); } + +std::shared_ptr<platform::native::ICursor> GetSystemCursor( + SystemCursorType type) { + return GetUiApplication()->GetCursorManager()->GetSystemCursor(type); +} } // namespace Button::Button() : click_detector_(this) { style_ = UiManager::GetInstance()->GetThemeResources()->button_style; - render_object_.reset(new render::BorderRenderObject); + render_object_ = std::make_unique<render::BorderRenderObject>(); render_object_->SetAttachedControl(this); Set(render_object_.get(), style_.normal); render_object_->SetBorderEnabled(true); @@ -75,21 +78,20 @@ void Button::OnStateChange(ButtonState oldState, ButtonState newState) { switch (newState) { case ButtonState::Normal: Set(render_object_.get(), style_.normal); - SetCursor(GetSystemCursor(SystemCursor::Arrow)); + SetCursor(GetSystemCursor(SystemCursorType::Arrow)); break; case ButtonState::Hover: Set(render_object_.get(), style_.hover); - SetCursor(GetSystemCursor(SystemCursor::Hand)); + SetCursor(GetSystemCursor(SystemCursorType::Hand)); break; case ButtonState::Press: Set(render_object_.get(), style_.press); - SetCursor(GetSystemCursor(SystemCursor::Hand)); + SetCursor(GetSystemCursor(SystemCursorType::Hand)); break; case ButtonState::PressCancel: Set(render_object_.get(), style_.press_cancel); - SetCursor(GetSystemCursor(SystemCursor::Arrow)); + SetCursor(GetSystemCursor(SystemCursorType::Arrow)); break; } - GetWindow()->GetNativeWindow()->Repaint(); } } // namespace cru::ui::controls diff --git a/src/ui/controls/container.cpp b/src/ui/controls/container.cpp index 7ebee4b4..2075d4ba 100644 --- a/src/ui/controls/container.cpp +++ b/src/ui/controls/container.cpp @@ -1,11 +1,11 @@ #include "cru/ui/controls/container.hpp" -#include "cru/platform/graph/graph_factory.hpp" +#include "cru/platform/graph/factory.hpp" #include "cru/ui/render/border_render_object.hpp" namespace cru::ui::controls { Container::Container() { - render_object_.reset(new render::BorderRenderObject); + render_object_ = std::make_unique<render::BorderRenderObject>(); render_object_->SetBorderEnabled(false); } diff --git a/src/ui/controls/text_block.cpp b/src/ui/controls/text_block.cpp index 71903981..333b44c8 100644 --- a/src/ui/controls/text_block.cpp +++ b/src/ui/controls/text_block.cpp @@ -9,20 +9,22 @@ using render::TextRenderObject; TextBlock::TextBlock() { const auto predefined_resources = UiManager::GetInstance()->GetPredefineResources(); - render_object_.reset( - new TextRenderObject(predefined_resources->text_block_text_brush, - predefined_resources->text_block_font, - predefined_resources->text_block_selection_brush)); + render_object_ = std::make_unique<TextRenderObject>( + predefined_resources->text_block_text_brush, + predefined_resources->text_block_font, + predefined_resources->text_block_selection_brush); render_object_->SetAttachedControl(this); } +TextBlock::~TextBlock() = default; + render::RenderObject* TextBlock::GetRenderObject() const { return render_object_.get(); } -std::wstring TextBlock::GetText() const { return render_object_->GetText(); } +std::string TextBlock::GetText() const { return render_object_->GetText(); } -void TextBlock::SetText(std::wstring text) { +void TextBlock::SetText(std::string text) { render_object_->SetText(std::move(text)); } } // namespace cru::ui::controls |