diff options
Diffstat (limited to 'src/ThemeBuilder/components')
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(); } |
