aboutsummaryrefslogtreecommitdiff
path: root/src/theme_builder/components
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-03-10 18:03:49 +0800
committercrupest <crupest@outlook.com>2022-03-10 18:03:49 +0800
commit1cf1002f1d3cd81ddb920eb7196a067b566f11e2 (patch)
tree8a299d16f0f5074d876175a602190f477bd498ea /src/theme_builder/components
parent51f87e3ff980e62f9cb5ee656e5591412e2766eb (diff)
downloadcru-1cf1002f1d3cd81ddb920eb7196a067b566f11e2.tar.gz
cru-1cf1002f1d3cd81ddb920eb7196a067b566f11e2.tar.bz2
cru-1cf1002f1d3cd81ddb920eb7196a067b566f11e2.zip
...
Diffstat (limited to 'src/theme_builder/components')
-rw-r--r--src/theme_builder/components/properties/FontPropertyEditor.cpp19
-rw-r--r--src/theme_builder/components/properties/FontPropertyEditor.h3
2 files changed, 17 insertions, 5 deletions
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