aboutsummaryrefslogtreecommitdiff
path: root/src/ui/controls
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/controls')
-rw-r--r--src/ui/controls/button.cpp22
-rw-r--r--src/ui/controls/container.cpp4
-rw-r--r--src/ui/controls/text_block.cpp14
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