diff options
author | crupest <crupest@outlook.com> | 2022-03-10 18:03:49 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-03-10 18:03:49 +0800 |
commit | 1cf1002f1d3cd81ddb920eb7196a067b566f11e2 (patch) | |
tree | 8a299d16f0f5074d876175a602190f477bd498ea /src/theme_builder/components | |
parent | 51f87e3ff980e62f9cb5ee656e5591412e2766eb (diff) | |
download | cru-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.cpp | 19 | ||||
-rw-r--r-- | src/theme_builder/components/properties/FontPropertyEditor.h | 3 |
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 |