aboutsummaryrefslogtreecommitdiff
path: root/src/theme_builder
diff options
context:
space:
mode:
Diffstat (limited to 'src/theme_builder')
-rw-r--r--src/theme_builder/CMakeLists.txt1
-rw-r--r--src/theme_builder/components/properties/FontPropertyEditor.cpp19
-rw-r--r--src/theme_builder/components/properties/FontPropertyEditor.h3
3 files changed, 18 insertions, 5 deletions
diff --git a/src/theme_builder/CMakeLists.txt b/src/theme_builder/CMakeLists.txt
index 40d23c4a..d1f30d61 100644
--- a/src/theme_builder/CMakeLists.txt
+++ b/src/theme_builder/CMakeLists.txt
@@ -13,6 +13,7 @@ add_executable(cru_theme_builder
components/properties/CheckBoxPropertyEditor.cpp
components/properties/ColorPropertyEditor.cpp
components/properties/CornerRadiusPropertyEditor.cpp
+ components/properties/FontPropertyEditor.cpp
components/properties/MeasureLengthPropertyEditor.cpp
components/properties/PointPropertyEditor.cpp
components/properties/SelectPropertyEditor.cpp
diff --git a/src/theme_builder/components/properties/FontPropertyEditor.cpp b/src/theme_builder/components/properties/FontPropertyEditor.cpp
index b4f5fa06..927ada7d 100644
--- a/src/theme_builder/components/properties/FontPropertyEditor.cpp
+++ b/src/theme_builder/components/properties/FontPropertyEditor.cpp
@@ -24,13 +24,14 @@ FontPropertyEditor::FontPropertyEditor() {
font_size_container_.SetFlexDirection(FlexDirection::Horizontal);
font_size_container_.AddChild(&font_size_label_);
- font_size_container_.AddChild(&font_size_text_);
+ font_size_container_.AddChild(font_size_input_.GetRootControl());
font_size_label_.SetText(u"Font Size");
+ font_size_input_.SetMin(0.0f);
font_family_text_.TextChangeEvent()->AddSpyOnlyHandler(
[this] { RaiseChangeEvent(); });
- font_size_text_.TextChangeEvent()->AddSpyOnlyHandler(
+ font_size_input_.ChangeEvent()->AddSpyOnlyHandler(
[this] { RaiseChangeEvent(); });
}
@@ -42,8 +43,18 @@ std::shared_ptr<platform::graphics::IFont> FontPropertyEditor::GetValue()
const {
return platform::gui::IUiApplication::GetInstance()
->GetGraphicsFactory()
- ->CreateFont(font_family_text_.GetText(),
- font_size_text_.GetText().ParseToFloat());
+ ->CreateFont(font_family_text_.GetText(), font_size_input_.GetValue());
}
+void FontPropertyEditor::SetValue(
+ std::shared_ptr<platform::graphics::IFont> value, bool trigger_change) {
+ SuppressNextChangeEvent();
+ font_family_text_.SetText(value->GetFontName());
+ SuppressNextChangeEvent();
+ font_size_input_.SetValue(value->GetFontSize());
+
+ if (trigger_change) {
+ RaiseChangeEvent();
+ }
+}
} // namespace cru::theme_builder::components::properties
diff --git a/src/theme_builder/components/properties/FontPropertyEditor.h b/src/theme_builder/components/properties/FontPropertyEditor.h
index f7dd0362..d349f1f2 100644
--- a/src/theme_builder/components/properties/FontPropertyEditor.h
+++ b/src/theme_builder/components/properties/FontPropertyEditor.h
@@ -1,6 +1,7 @@
#pragma once
#include "../Editor.h"
#include "cru/platform/graphics/Font.h"
+#include "cru/ui/components/Input.h"
#include "cru/ui/controls/Control.h"
#include "cru/ui/controls/FlexLayout.h"
#include "cru/ui/controls/TextBlock.h"
@@ -32,6 +33,6 @@ class FontPropertyEditor : public Editor {
ui::controls::TextBox font_family_text_;
ui::controls::FlexLayout font_size_container_;
ui::controls::TextBlock font_size_label_;
- ui::controls::TextBox font_size_text_;
+ ui::components::FloatInput font_size_input_;
};
} // namespace cru::theme_builder::components::properties