aboutsummaryrefslogtreecommitdiff
path: root/src/ThemeBuilder/components
diff options
context:
space:
mode:
Diffstat (limited to 'src/ThemeBuilder/components')
-rw-r--r--src/ThemeBuilder/components/HeadBodyEditor.h9
-rw-r--r--src/ThemeBuilder/components/LabeledMixin.h13
-rw-r--r--src/ThemeBuilder/components/conditions/CheckedConditionEditor.cpp3
-rw-r--r--src/ThemeBuilder/components/conditions/CheckedConditionEditor.h6
-rw-r--r--src/ThemeBuilder/components/conditions/ClickStateConditionEditor.cpp3
-rw-r--r--src/ThemeBuilder/components/conditions/ClickStateConditionEditor.h7
-rw-r--r--src/ThemeBuilder/components/conditions/CompoundConditionEditor.h12
-rw-r--r--src/ThemeBuilder/components/conditions/FocusConditionEditor.cpp2
-rw-r--r--src/ThemeBuilder/components/conditions/FocusConditionEditor.h6
-rw-r--r--src/ThemeBuilder/components/properties/CheckBoxPropertyEditor.h10
-rw-r--r--src/ThemeBuilder/components/properties/ColorPropertyEditor.h10
-rw-r--r--src/ThemeBuilder/components/properties/CornerRadiusPropertyEditor.cpp2
-rw-r--r--src/ThemeBuilder/components/properties/CornerRadiusPropertyEditor.h2
-rw-r--r--src/ThemeBuilder/components/properties/FontPropertyEditor.cpp4
-rw-r--r--src/ThemeBuilder/components/properties/FontPropertyEditor.h9
-rw-r--r--src/ThemeBuilder/components/properties/MeasureLengthPropertyEditor.h10
-rw-r--r--src/ThemeBuilder/components/properties/OptionalPropertyEditor.h12
-rw-r--r--src/ThemeBuilder/components/properties/PointPropertyEditor.cpp1
-rw-r--r--src/ThemeBuilder/components/properties/PointPropertyEditor.h10
-rw-r--r--src/ThemeBuilder/components/properties/SelectPropertyEditor.h14
-rw-r--r--src/ThemeBuilder/components/properties/TextPropertyEditor.h11
-rw-r--r--src/ThemeBuilder/components/properties/ThicknessPropertyEditor.h10
-rw-r--r--src/ThemeBuilder/components/stylers/ContentBrushStylerEditor.cpp3
-rw-r--r--src/ThemeBuilder/components/stylers/ContentBrushStylerEditor.h3
-rw-r--r--src/ThemeBuilder/components/stylers/FontStylerEditor.cpp4
-rw-r--r--src/ThemeBuilder/components/stylers/FontStylerEditor.h3
26 files changed, 62 insertions, 117 deletions
diff --git a/src/ThemeBuilder/components/HeadBodyEditor.h b/src/ThemeBuilder/components/HeadBodyEditor.h
index c8671841..1337bd4d 100644
--- a/src/ThemeBuilder/components/HeadBodyEditor.h
+++ b/src/ThemeBuilder/components/HeadBodyEditor.h
@@ -1,14 +1,13 @@
#pragma once
#include "Editor.h"
+#include "LabeledMixin.h"
#include "cru/base/Event.h"
#include "cru/ui/controls/Container.h"
#include "cru/ui/controls/FlexLayout.h"
#include "cru/ui/controls/IconButton.h"
-#include "cru/ui/controls/TextBlock.h"
-#include "cru/ui/style/Styler.h"
namespace cru::theme_builder::components {
-class HeadBodyEditor : public Editor {
+class HeadBodyEditor : public Editor, public LabeledMixin {
public:
HeadBodyEditor();
~HeadBodyEditor() override;
@@ -19,16 +18,12 @@ class HeadBodyEditor : public Editor {
ui::controls::FlexLayout* GetContainer() { return &container_; }
ui::controls::FlexLayout* GetHeadContainer() { return &head_container_; }
- std::string GetLabel() const { return label_.GetText(); }
- void SetLabel(std::string label) { label_.SetText(std::move(label)); }
-
IEvent<std::nullptr_t>* RemoveEvent() { return &remove_event_; }
private:
ui::controls::Container border_;
ui::controls::FlexLayout container_;
ui::controls::FlexLayout head_container_;
- ui::controls::TextBlock label_;
ui::controls::IconButton remove_button_;
Event<std::nullptr_t> remove_event_;
diff --git a/src/ThemeBuilder/components/LabeledMixin.h b/src/ThemeBuilder/components/LabeledMixin.h
new file mode 100644
index 00000000..867bb4ad
--- /dev/null
+++ b/src/ThemeBuilder/components/LabeledMixin.h
@@ -0,0 +1,13 @@
+#pragma once
+#include "cru/ui/controls/TextBlock.h"
+
+namespace cru::theme_builder {
+class LabeledMixin {
+ public:
+ std::string GetLabel() { return label_.GetText(); }
+ void SetLabel(std::string label) { label_.SetText(std::move(label)); }
+
+ protected:
+ ui::controls::TextBlock label_;
+};
+} // namespace cru::theme_builder
diff --git a/src/ThemeBuilder/components/conditions/CheckedConditionEditor.cpp b/src/ThemeBuilder/components/conditions/CheckedConditionEditor.cpp
index e207c761..b45006db 100644
--- a/src/ThemeBuilder/components/conditions/CheckedConditionEditor.cpp
+++ b/src/ThemeBuilder/components/conditions/CheckedConditionEditor.cpp
@@ -14,8 +14,7 @@ CheckedConditionEditor::CheckedConditionEditor() {
CheckedConditionEditor::~CheckedConditionEditor() {}
-ClonePtr<ui::style::CheckedCondition> CheckedConditionEditor::GetValue()
- const {
+ClonePtr<ui::style::CheckedCondition> CheckedConditionEditor::GetValue() {
return ui::style::CheckedCondition::Create(checked_check_box_.GetValue());
}
diff --git a/src/ThemeBuilder/components/conditions/CheckedConditionEditor.h b/src/ThemeBuilder/components/conditions/CheckedConditionEditor.h
index c83a1cff..6fc6f97f 100644
--- a/src/ThemeBuilder/components/conditions/CheckedConditionEditor.h
+++ b/src/ThemeBuilder/components/conditions/CheckedConditionEditor.h
@@ -11,16 +11,14 @@ class CheckedConditionEditor : public ConditionEditor {
~CheckedConditionEditor() override;
public:
- ClonePtr<ui::style::CheckedCondition> GetValue() const;
+ ClonePtr<ui::style::CheckedCondition> GetValue();
void SetValue(ui::style::CheckedCondition* value, bool trigger_change = true);
void SetValue(const ClonePtr<ui::style::CheckedCondition>& value,
bool trigger_change = true) {
SetValue(value.get(), trigger_change);
}
- ClonePtr<ui::style::Condition> GetCondition() override {
- return GetValue();
- }
+ ClonePtr<ui::style::Condition> GetCondition() override { return GetValue(); }
private:
properties::CheckBoxPropertyEditor checked_check_box_;
diff --git a/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.cpp b/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.cpp
index 24e83a0e..4862fd47 100644
--- a/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.cpp
+++ b/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.cpp
@@ -55,8 +55,7 @@ ClickStateConditionEditor::ClickStateConditionEditor() {
ClickStateConditionEditor::~ClickStateConditionEditor() {}
-ClonePtr<ui::style::ClickStateCondition>
-ClickStateConditionEditor::GetValue() const {
+ClonePtr<ui::style::ClickStateCondition> ClickStateConditionEditor::GetValue() {
return ui::style::ClickStateCondition::Create(
ConvertIndexToClickState(click_state_select_.GetSelectedIndex()));
}
diff --git a/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.h b/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.h
index 24d60f7b..6929732c 100644
--- a/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.h
+++ b/src/ThemeBuilder/components/conditions/ClickStateConditionEditor.h
@@ -2,7 +2,6 @@
#include "../properties/SelectPropertyEditor.h"
#include "ConditionEditor.h"
#include "cru/base/ClonePtr.h"
-#include "cru/base/Event.h"
#include "cru/ui/style/Condition.h"
namespace cru::theme_builder::components::conditions {
@@ -12,7 +11,7 @@ class ClickStateConditionEditor : public ConditionEditor {
~ClickStateConditionEditor();
public:
- ClonePtr<ui::style::ClickStateCondition> GetValue() const;
+ ClonePtr<ui::style::ClickStateCondition> GetValue();
void SetValue(ui::style::ClickStateCondition* value,
bool trigger_change = true);
void SetValue(const ClonePtr<ui::style::ClickStateCondition>& value,
@@ -20,9 +19,7 @@ class ClickStateConditionEditor : public ConditionEditor {
SetValue(value.get(), trigger_change);
}
- ClonePtr<ui::style::Condition> GetCondition() override {
- return GetValue();
- }
+ ClonePtr<ui::style::Condition> GetCondition() override { return GetValue(); }
private:
properties::SelectPropertyEditor click_state_select_;
diff --git a/src/ThemeBuilder/components/conditions/CompoundConditionEditor.h b/src/ThemeBuilder/components/conditions/CompoundConditionEditor.h
index c0f0891a..6c1beeac 100644
--- a/src/ThemeBuilder/components/conditions/CompoundConditionEditor.h
+++ b/src/ThemeBuilder/components/conditions/CompoundConditionEditor.h
@@ -1,12 +1,8 @@
#pragma once
#include "ConditionEditor.h"
#include "cru/base/ClonePtr.h"
-#include "cru/base/Event.h"
-#include "cru/ui/components/Component.h"
#include "cru/ui/components/PopupButton.h"
-#include "cru/ui/controls/Button.h"
#include "cru/ui/controls/FlexLayout.h"
-#include "cru/ui/controls/TextBlock.h"
#include "cru/ui/style/Condition.h"
namespace cru::theme_builder::components::conditions {
@@ -28,10 +24,6 @@ class CompoundConditionEditor : public ConditionEditor {
class AndConditionEditor : public CompoundConditionEditor {
public:
- AndConditionEditor() = default;
- ~AndConditionEditor() override = default;
-
- public:
ClonePtr<ui::style::AndCondition> GetValue() {
return ui::style::AndCondition::Create(GetChildren());
}
@@ -50,10 +42,6 @@ class AndConditionEditor : public CompoundConditionEditor {
class OrConditionEditor : public CompoundConditionEditor {
public:
- OrConditionEditor() = default;
- ~OrConditionEditor() override = default;
-
- public:
ClonePtr<ui::style::OrCondition> GetValue() {
return ui::style::OrCondition::Create(GetChildren());
}
diff --git a/src/ThemeBuilder/components/conditions/FocusConditionEditor.cpp b/src/ThemeBuilder/components/conditions/FocusConditionEditor.cpp
index 67a660d1..356f42ef 100644
--- a/src/ThemeBuilder/components/conditions/FocusConditionEditor.cpp
+++ b/src/ThemeBuilder/components/conditions/FocusConditionEditor.cpp
@@ -14,7 +14,7 @@ FocusConditionEditor::FocusConditionEditor() {
FocusConditionEditor::~FocusConditionEditor() {}
-ClonePtr<ui::style::FocusCondition> FocusConditionEditor::GetValue() const {
+ClonePtr<ui::style::FocusCondition> FocusConditionEditor::GetValue() {
return ui::style::FocusCondition::Create(focus_check_box_.GetValue());
}
diff --git a/src/ThemeBuilder/components/conditions/FocusConditionEditor.h b/src/ThemeBuilder/components/conditions/FocusConditionEditor.h
index c9c8018e..1cfb883f 100644
--- a/src/ThemeBuilder/components/conditions/FocusConditionEditor.h
+++ b/src/ThemeBuilder/components/conditions/FocusConditionEditor.h
@@ -11,16 +11,14 @@ class FocusConditionEditor : public ConditionEditor {
~FocusConditionEditor() override;
public:
- ClonePtr<ui::style::FocusCondition> GetValue() const;
+ ClonePtr<ui::style::FocusCondition> GetValue();
void SetValue(ui::style::FocusCondition* value, bool trigger_change = true);
void SetValue(const ClonePtr<ui::style::FocusCondition>& value,
bool trigger_change = true) {
SetValue(value.get(), trigger_change);
}
- ClonePtr<ui::style::Condition> GetCondition() override {
- return GetValue();
- }
+ ClonePtr<ui::style::Condition> GetCondition() override { return GetValue(); }
private:
properties::CheckBoxPropertyEditor focus_check_box_;
diff --git a/src/ThemeBuilder/components/properties/CheckBoxPropertyEditor.h b/src/ThemeBuilder/components/properties/CheckBoxPropertyEditor.h
index 8cdd541b..8673a285 100644
--- a/src/ThemeBuilder/components/properties/CheckBoxPropertyEditor.h
+++ b/src/ThemeBuilder/components/properties/CheckBoxPropertyEditor.h
@@ -1,11 +1,11 @@
#pragma once
#include "../Editor.h"
+#include "../LabeledMixin.h"
#include "cru/ui/controls/CheckBox.h"
#include "cru/ui/controls/FlexLayout.h"
-#include "cru/ui/controls/TextBlock.h"
namespace cru::theme_builder::components::properties {
-class CheckBoxPropertyEditor : public Editor {
+class CheckBoxPropertyEditor : public Editor, public LabeledMixin {
public:
using PropertyType = bool;
@@ -15,15 +15,11 @@ class CheckBoxPropertyEditor : public Editor {
public:
ui::controls::Control* GetRootControl() override { return &container_; }
- std::string GetLabel() const { return label_.GetText(); }
- void SetLabel(std::string label) { label_.SetText(std::move(label)); }
-
- bool GetValue() const { return check_box_.IsChecked(); }
+ bool GetValue() { return check_box_.IsChecked(); }
void SetValue(bool value, bool trigger_change = true);
private:
ui::controls::FlexLayout container_;
- ui::controls::TextBlock label_;
ui::controls::CheckBox check_box_;
};
} // namespace cru::theme_builder::components::properties
diff --git a/src/ThemeBuilder/components/properties/ColorPropertyEditor.h b/src/ThemeBuilder/components/properties/ColorPropertyEditor.h
index 7c76297b..a0f784e9 100644
--- a/src/ThemeBuilder/components/properties/ColorPropertyEditor.h
+++ b/src/ThemeBuilder/components/properties/ColorPropertyEditor.h
@@ -1,13 +1,13 @@
#pragma once
#include "../Editor.h"
+#include "../LabeledMixin.h"
#include "cru/platform/graphics/Base.h"
#include "cru/ui/controls/Container.h"
#include "cru/ui/controls/FlexLayout.h"
-#include "cru/ui/controls/TextBlock.h"
#include "cru/ui/controls/TextBox.h"
namespace cru::theme_builder::components::properties {
-class ColorPropertyEditor : public Editor {
+class ColorPropertyEditor : public Editor, public LabeledMixin {
public:
using PropertyType = ui::Color;
@@ -17,17 +17,13 @@ class ColorPropertyEditor : public Editor {
public:
ui::controls::Control* GetRootControl() override { return &container_; }
- std::string GetLabel() const { return label_.GetText(); }
- void SetLabel(std::string label) { label_.SetText(std::move(label)); }
-
- ui::Color GetValue() const { return color_; }
+ ui::Color GetValue() { return color_; }
void SetValue(const ui::Color& color, bool trigger_change = true);
private:
ui::Color color_ = ui::colors::transparent;
ui::controls::FlexLayout container_;
- ui::controls::TextBlock label_;
ui::controls::Container color_cube_;
std::shared_ptr<platform::graphics::ISolidColorBrush> color_cube_brush_;
ui::controls::TextBox color_text_;
diff --git a/src/ThemeBuilder/components/properties/CornerRadiusPropertyEditor.cpp b/src/ThemeBuilder/components/properties/CornerRadiusPropertyEditor.cpp
index 47a51ddd..5b50ad38 100644
--- a/src/ThemeBuilder/components/properties/CornerRadiusPropertyEditor.cpp
+++ b/src/ThemeBuilder/components/properties/CornerRadiusPropertyEditor.cpp
@@ -25,7 +25,7 @@ CornerRadiusPropertyEditor::CornerRadiusPropertyEditor() {
CornerRadiusPropertyEditor::~CornerRadiusPropertyEditor() {}
-ui::CornerRadius CornerRadiusPropertyEditor::GetValue() const {
+ui::CornerRadius CornerRadiusPropertyEditor::GetValue() {
return ui::CornerRadius(
left_top_editor_.GetValue(), right_top_editor_.GetValue(),
left_bottom_editor_.GetValue(), right_bottom_editor_.GetValue());
diff --git a/src/ThemeBuilder/components/properties/CornerRadiusPropertyEditor.h b/src/ThemeBuilder/components/properties/CornerRadiusPropertyEditor.h
index 6b6833d1..376a2f30 100644
--- a/src/ThemeBuilder/components/properties/CornerRadiusPropertyEditor.h
+++ b/src/ThemeBuilder/components/properties/CornerRadiusPropertyEditor.h
@@ -14,7 +14,7 @@ class CornerRadiusPropertyEditor : public Editor {
ui::controls::Control* GetRootControl() override { return &container_; }
- ui::CornerRadius GetValue() const;
+ ui::CornerRadius GetValue();
void SetValue(const ui::CornerRadius& corner_radius,
bool trigger_change = true);
diff --git a/src/ThemeBuilder/components/properties/FontPropertyEditor.cpp b/src/ThemeBuilder/components/properties/FontPropertyEditor.cpp
index 231e45dd..1024f446 100644
--- a/src/ThemeBuilder/components/properties/FontPropertyEditor.cpp
+++ b/src/ThemeBuilder/components/properties/FontPropertyEditor.cpp
@@ -3,7 +3,6 @@
#include "cru/platform/graphics/Font.h"
#include "cru/platform/gui/UiApplication.h"
#include "cru/ui/controls/FlexLayout.h"
-#include "cru/ui/render/FlexLayoutRenderObject.h"
namespace cru::theme_builder::components::properties {
using namespace cru::ui::controls;
@@ -39,8 +38,7 @@ FontPropertyEditor::~FontPropertyEditor() {}
Control* FontPropertyEditor::GetRootControl() { return &main_container_; }
-std::shared_ptr<platform::graphics::IFont> FontPropertyEditor::GetValue()
- const {
+std::shared_ptr<platform::graphics::IFont> FontPropertyEditor::GetValue() {
return platform::gui::IUiApplication::GetInstance()
->GetGraphicsFactory()
->CreateFont(font_family_text_.GetText(), font_size_input_.GetValue());
diff --git a/src/ThemeBuilder/components/properties/FontPropertyEditor.h b/src/ThemeBuilder/components/properties/FontPropertyEditor.h
index ec6a6b56..4a6c601c 100644
--- a/src/ThemeBuilder/components/properties/FontPropertyEditor.h
+++ b/src/ThemeBuilder/components/properties/FontPropertyEditor.h
@@ -1,5 +1,6 @@
#pragma once
#include "../Editor.h"
+#include "../LabeledMixin.h"
#include "cru/platform/graphics/Font.h"
#include "cru/ui/components/Input.h"
#include "cru/ui/controls/Control.h"
@@ -8,7 +9,7 @@
#include "cru/ui/controls/TextBox.h"
namespace cru::theme_builder::components::properties {
-class FontPropertyEditor : public Editor {
+class FontPropertyEditor : public Editor, public LabeledMixin {
public:
using PropertyType = std::shared_ptr<platform::graphics::IFont>;
@@ -17,16 +18,12 @@ class FontPropertyEditor : public Editor {
ui::controls::Control* GetRootControl() override;
- std::string GetLabelText() const { return label_.GetText(); }
- void SetLabelText(std::string label) { label_.SetText(std::move(label)); }
-
- std::shared_ptr<platform::graphics::IFont> GetValue() const;
+ std::shared_ptr<platform::graphics::IFont> GetValue();
void SetValue(std::shared_ptr<platform::graphics::IFont> value,
bool trigger_change = true);
private:
ui::controls::FlexLayout main_container_;
- ui::controls::TextBlock label_;
ui::controls::FlexLayout right_container_;
ui::controls::FlexLayout font_family_container_;
ui::controls::TextBlock font_family_label_;
diff --git a/src/ThemeBuilder/components/properties/MeasureLengthPropertyEditor.h b/src/ThemeBuilder/components/properties/MeasureLengthPropertyEditor.h
index ee99579f..dd4101bf 100644
--- a/src/ThemeBuilder/components/properties/MeasureLengthPropertyEditor.h
+++ b/src/ThemeBuilder/components/properties/MeasureLengthPropertyEditor.h
@@ -1,14 +1,12 @@
#pragma once
#include "../Editor.h"
-#include "cru/platform/graphics/Base.h"
-#include "cru/ui/controls/Container.h"
+#include "../LabeledMixin.h"
#include "cru/ui/controls/FlexLayout.h"
-#include "cru/ui/controls/TextBlock.h"
#include "cru/ui/controls/TextBox.h"
#include "cru/ui/render/MeasureRequirement.h"
namespace cru::theme_builder::components::properties {
-class MeasureLengthPropertyEditor : public Editor {
+class MeasureLengthPropertyEditor : public Editor, public LabeledMixin {
public:
using PropertyType = ui::render::MeasureLength;
@@ -18,9 +16,6 @@ class MeasureLengthPropertyEditor : public Editor {
public:
ui::controls::Control* GetRootControl() override { return &container_; }
- std::string GetLabel() const { return label_.GetText(); }
- void SetLabel(std::string label) { label_.SetText(std::move(label)); }
-
PropertyType GetValue() const { return measure_length_; }
void SetValue(const PropertyType& value, bool trigger_change = true);
@@ -28,7 +23,6 @@ class MeasureLengthPropertyEditor : public Editor {
PropertyType measure_length_;
ui::controls::FlexLayout container_;
- ui::controls::TextBlock label_;
ui::controls::TextBox text_;
bool is_text_valid_;
};
diff --git a/src/ThemeBuilder/components/properties/OptionalPropertyEditor.h b/src/ThemeBuilder/components/properties/OptionalPropertyEditor.h
index 8db14114..b44b3b1b 100644
--- a/src/ThemeBuilder/components/properties/OptionalPropertyEditor.h
+++ b/src/ThemeBuilder/components/properties/OptionalPropertyEditor.h
@@ -1,14 +1,14 @@
#pragma once
#include "../Editor.h"
+#include "../LabeledMixin.h"
#include "cru/ui/controls/CheckBox.h"
#include "cru/ui/controls/FlexLayout.h"
-#include "cru/ui/controls/TextBlock.h"
#include <optional>
namespace cru::theme_builder::components::properties {
template <typename TEditor>
-class OptionalPropertyEditor : public Editor {
+class OptionalPropertyEditor : public Editor, public LabeledMixin {
public:
using PropertyType = typename TEditor::PropertyType;
@@ -28,10 +28,7 @@ class OptionalPropertyEditor : public Editor {
ui::controls::Control* GetRootControl() override { return &container_; }
- std::string GetLabel() const { return label_.GetText(); }
- void SetLabel(std::string label) { label_.SetText(std::move(label)); }
-
- bool IsEnabled() const { return check_box_.IsChecked(); }
+ bool IsEnabled() { return check_box_.IsChecked(); }
void SetEnabled(bool enabled, bool trigger_change = true) {
check_box_.SetChecked(enabled);
if (trigger_change) {
@@ -39,7 +36,7 @@ class OptionalPropertyEditor : public Editor {
}
}
- std::optional<PropertyType> GetValue() const {
+ std::optional<PropertyType> GetValue() {
return IsEnabled() ? std::optional<PropertyType>(editor_.GetValue())
: std::nullopt;
}
@@ -58,7 +55,6 @@ class OptionalPropertyEditor : public Editor {
private:
ui::controls::FlexLayout container_;
- ui::controls::TextBlock label_;
ui::controls::CheckBox check_box_;
TEditor editor_;
};
diff --git a/src/ThemeBuilder/components/properties/PointPropertyEditor.cpp b/src/ThemeBuilder/components/properties/PointPropertyEditor.cpp
index 82fee18f..51d6892e 100644
--- a/src/ThemeBuilder/components/properties/PointPropertyEditor.cpp
+++ b/src/ThemeBuilder/components/properties/PointPropertyEditor.cpp
@@ -1,6 +1,5 @@
#include "PointPropertyEditor.h"
#include "cru/ui/mapper/MapperRegistry.h"
-#include "cru/ui/mapper/PointMapper.h"
#include <format>
diff --git a/src/ThemeBuilder/components/properties/PointPropertyEditor.h b/src/ThemeBuilder/components/properties/PointPropertyEditor.h
index 4f078c8b..299505dd 100644
--- a/src/ThemeBuilder/components/properties/PointPropertyEditor.h
+++ b/src/ThemeBuilder/components/properties/PointPropertyEditor.h
@@ -1,11 +1,11 @@
#pragma once
#include "../Editor.h"
+#include "../LabeledMixin.h"
#include "cru/ui/controls/FlexLayout.h"
-#include "cru/ui/controls/TextBlock.h"
#include "cru/ui/controls/TextBox.h"
namespace cru::theme_builder::components::properties {
-class PointPropertyEditor : public Editor {
+class PointPropertyEditor : public Editor, public LabeledMixin {
public:
using PropertyType = ui::Point;
@@ -15,10 +15,7 @@ class PointPropertyEditor : public Editor {
public:
ui::controls::Control* GetRootControl() override { return &container_; }
- std::string GetLabel() const { return label_.GetText(); }
- void SetLabel(std::string label) { label_.SetText(std::move(label)); }
-
- ui::Point GetValue() const { return point_; }
+ ui::Point GetValue() { return point_; }
void SetValue(const ui::Point& point, bool trigger_change = true);
private:
@@ -28,7 +25,6 @@ class PointPropertyEditor : public Editor {
ui::Point point_;
ui::controls::FlexLayout container_;
- ui::controls::TextBlock label_;
ui::controls::TextBox text_;
bool is_text_valid_;
};
diff --git a/src/ThemeBuilder/components/properties/SelectPropertyEditor.h b/src/ThemeBuilder/components/properties/SelectPropertyEditor.h
index 0d6cbfcd..c58c1829 100644
--- a/src/ThemeBuilder/components/properties/SelectPropertyEditor.h
+++ b/src/ThemeBuilder/components/properties/SelectPropertyEditor.h
@@ -1,11 +1,11 @@
#pragma once
#include "../Editor.h"
+#include "../LabeledMixin.h"
#include "cru/ui/components/Select.h"
#include "cru/ui/controls/FlexLayout.h"
-#include "cru/ui/controls/TextBlock.h"
namespace cru::theme_builder::components::properties {
-class SelectPropertyEditor : public Editor {
+class SelectPropertyEditor : public Editor, public LabeledMixin {
public:
using PropertyType = Index;
@@ -15,28 +15,24 @@ class SelectPropertyEditor : public Editor {
public:
ui::controls::Control* GetRootControl() override { return &container_; }
- std::string GetLabel() const { return label_.GetText(); }
- void SetLabel(std::string label) { label_.SetText(std::move(label)); }
-
- Index GetSelectedIndex() const { return select_.GetSelectedIndex(); }
+ Index GetSelectedIndex() { return select_.GetSelectedIndex(); }
void SetSelectedIndex(Index index, bool trigger_change = true) {
if (trigger_change == false) SuppressNextChangeEvent();
select_.SetSelectedIndex(index);
}
- std::vector<std::string> GetItems() const { return select_.GetItems(); }
+ std::vector<std::string> GetItems() { return select_.GetItems(); }
void SetItems(std::vector<std::string> items) {
select_.SetItems(std::move(items));
}
- Index GetValue() const { return GetSelectedIndex(); }
+ Index GetValue() { return GetSelectedIndex(); }
void SetValue(Index value, bool trigger_change = true) {
SetSelectedIndex(value, trigger_change);
}
private:
ui::controls::FlexLayout container_;
- ui::controls::TextBlock label_;
ui::components::Select select_;
};
} // namespace cru::theme_builder::components::properties
diff --git a/src/ThemeBuilder/components/properties/TextPropertyEditor.h b/src/ThemeBuilder/components/properties/TextPropertyEditor.h
index 040f776a..433143cd 100644
--- a/src/ThemeBuilder/components/properties/TextPropertyEditor.h
+++ b/src/ThemeBuilder/components/properties/TextPropertyEditor.h
@@ -1,22 +1,21 @@
#pragma once
+#include "../LabeledMixin.h"
#include "cru/ui/components/Component.h"
#include "cru/ui/controls/FlexLayout.h"
#include "cru/ui/controls/TextBlock.h"
#include "cru/ui/controls/TextBox.h"
namespace cru::theme_builder::components::properties {
-class TextPropertyEditor : public ui::components::Component {
+class TextPropertyEditor : public ui::components::Component,
+ public LabeledMixin {
public:
TextPropertyEditor();
~TextPropertyEditor() override;
ui::controls::Control* GetRootControl() override { return &container_; }
- std::string GetLabel() const { return label_.GetText(); }
- void SetLabel(std::string label) { label_.SetText(std::move(label)); }
-
- std::string GetText() const { return editor_.GetText(); }
- std::string_view GetTextView() const { return editor_.GetTextView(); }
+ std::string GetText() { return editor_.GetText(); }
+ std::string_view GetTextView() { return editor_.GetTextView(); }
void SetText(std::string text) { editor_.SetText(std::move(text)); }
protected:
diff --git a/src/ThemeBuilder/components/properties/ThicknessPropertyEditor.h b/src/ThemeBuilder/components/properties/ThicknessPropertyEditor.h
index dae2e612..106e0e9e 100644
--- a/src/ThemeBuilder/components/properties/ThicknessPropertyEditor.h
+++ b/src/ThemeBuilder/components/properties/ThicknessPropertyEditor.h
@@ -1,11 +1,11 @@
#pragma once
#include "../Editor.h"
+#include "../LabeledMixin.h"
#include "cru/ui/controls/FlexLayout.h"
-#include "cru/ui/controls/TextBlock.h"
#include "cru/ui/controls/TextBox.h"
namespace cru::theme_builder::components::properties {
-class ThicknessPropertyEditor : public Editor {
+class ThicknessPropertyEditor : public Editor, public LabeledMixin {
public:
using PropertyType = ui::Thickness;
@@ -14,17 +14,13 @@ class ThicknessPropertyEditor : public Editor {
ui::controls::Control* GetRootControl() override { return &container_; }
- std::string GetLabel() const { return label_.GetText(); }
- void SetLabel(std::string label) { label_.SetText(std::move(label)); }
-
- ui::Thickness GetValue() const { return thickness_; }
+ ui::Thickness GetValue() { return thickness_; }
void SetValue(const ui::Thickness& thickness, bool trigger_change = true);
private:
ui::Thickness thickness_;
ui::controls::FlexLayout container_;
- ui::controls::TextBlock label_;
ui::controls::TextBox text_;
bool is_text_valid_;
};
diff --git a/src/ThemeBuilder/components/stylers/ContentBrushStylerEditor.cpp b/src/ThemeBuilder/components/stylers/ContentBrushStylerEditor.cpp
index 00b40d10..98bc14b7 100644
--- a/src/ThemeBuilder/components/stylers/ContentBrushStylerEditor.cpp
+++ b/src/ThemeBuilder/components/stylers/ContentBrushStylerEditor.cpp
@@ -12,8 +12,7 @@ ContentBrushStylerEditor::ContentBrushStylerEditor() {
ContentBrushStylerEditor::~ContentBrushStylerEditor() {}
-ClonePtr<ui::style::ContentBrushStyler> ContentBrushStylerEditor::GetValue()
- const {
+ClonePtr<ui::style::ContentBrushStyler> ContentBrushStylerEditor::GetValue() {
return ui::style::ContentBrushStyler::Create(
platform::gui::IUiApplication::GetInstance()
->GetGraphicsFactory()
diff --git a/src/ThemeBuilder/components/stylers/ContentBrushStylerEditor.h b/src/ThemeBuilder/components/stylers/ContentBrushStylerEditor.h
index 91e8adc2..b1b179a1 100644
--- a/src/ThemeBuilder/components/stylers/ContentBrushStylerEditor.h
+++ b/src/ThemeBuilder/components/stylers/ContentBrushStylerEditor.h
@@ -1,5 +1,4 @@
#pragma once
-#include "../Editor.h"
#include "../properties/ColorPropertyEditor.h"
#include "StylerEditor.h"
#include "cru/base/ClonePtr.h"
@@ -12,7 +11,7 @@ class ContentBrushStylerEditor : public StylerEditor {
~ContentBrushStylerEditor();
public:
- ClonePtr<ui::style::ContentBrushStyler> GetValue() const;
+ ClonePtr<ui::style::ContentBrushStyler> GetValue();
void SetValue(ui::style::ContentBrushStyler* value,
bool trigger_change = true);
diff --git a/src/ThemeBuilder/components/stylers/FontStylerEditor.cpp b/src/ThemeBuilder/components/stylers/FontStylerEditor.cpp
index c8687e6d..e84a439c 100644
--- a/src/ThemeBuilder/components/stylers/FontStylerEditor.cpp
+++ b/src/ThemeBuilder/components/stylers/FontStylerEditor.cpp
@@ -1,6 +1,4 @@
#include "FontStylerEditor.h"
-#include "cru/platform/graphics/Factory.h"
-#include "cru/platform/gui/UiApplication.h"
#include "cru/ui/style/Styler.h"
namespace cru::theme_builder::components::stylers {
@@ -12,7 +10,7 @@ FontStylerEditor::FontStylerEditor() {
FontStylerEditor::~FontStylerEditor() {}
-ClonePtr<ui::style::FontStyler> FontStylerEditor::GetValue() const {
+ClonePtr<ui::style::FontStyler> FontStylerEditor::GetValue() {
return ui::style::FontStyler::Create(font_editor_.GetValue());
}
diff --git a/src/ThemeBuilder/components/stylers/FontStylerEditor.h b/src/ThemeBuilder/components/stylers/FontStylerEditor.h
index a5145e31..11c931d3 100644
--- a/src/ThemeBuilder/components/stylers/FontStylerEditor.h
+++ b/src/ThemeBuilder/components/stylers/FontStylerEditor.h
@@ -1,5 +1,4 @@
#pragma once
-#include "../Editor.h"
#include "../properties/FontPropertyEditor.h"
#include "StylerEditor.h"
#include "cru/base/ClonePtr.h"
@@ -12,7 +11,7 @@ class FontStylerEditor : public StylerEditor {
~FontStylerEditor();
public:
- ClonePtr<ui::style::FontStyler> GetValue() const;
+ ClonePtr<ui::style::FontStyler> GetValue();
void SetValue(ui::style::FontStyler* value, bool trigger_change = true);
ClonePtr<ui::style::Styler> GetStyler() override { return GetValue(); }