diff options
Diffstat (limited to 'src')
4 files changed, 52 insertions, 0 deletions
diff --git a/src/theme_builder/CMakeLists.txt b/src/theme_builder/CMakeLists.txt index b12de342..87669da9 100644 --- a/src/theme_builder/CMakeLists.txt +++ b/src/theme_builder/CMakeLists.txt @@ -23,6 +23,7 @@ add_executable(cru_theme_builder components/stylers/CompoundStylerEditor.cpp components/stylers/ContentBrushStylerEditor.cpp components/stylers/CursorStylerEditor.cpp + components/stylers/FontStylerEditor.cpp components/stylers/MarginStylerEditor.cpp components/stylers/PaddingStylerEditor.cpp components/stylers/PreferredSizeStylerEditor.cpp diff --git a/src/theme_builder/components/stylers/FontStylerEditor.cpp b/src/theme_builder/components/stylers/FontStylerEditor.cpp new file mode 100644 index 00000000..9787a4fd --- /dev/null +++ b/src/theme_builder/components/stylers/FontStylerEditor.cpp @@ -0,0 +1,23 @@ +#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 { +FontStylerEditor::FontStylerEditor() { + GetContainer()->AddChild(font_editor_.GetRootControl()); + + ConnectChangeEvent(font_editor_); +} + +FontStylerEditor::~FontStylerEditor() {} + +ClonablePtr<ui::style::FontStyler> FontStylerEditor::GetValue() const { + return ui::style::FontStyler::Create(font_editor_.GetValue()); +} + +void FontStylerEditor::SetValue(ui::style::FontStyler* value, + bool trigger_change) { + font_editor_.SetValue(value->GetFont(), trigger_change); +} +} // namespace cru::theme_builder::components::stylers diff --git a/src/theme_builder/components/stylers/FontStylerEditor.h b/src/theme_builder/components/stylers/FontStylerEditor.h new file mode 100644 index 00000000..ccd12113 --- /dev/null +++ b/src/theme_builder/components/stylers/FontStylerEditor.h @@ -0,0 +1,23 @@ +#pragma once +#include "../Editor.h" +#include "../properties/FontPropertyEditor.h" +#include "StylerEditor.h" +#include "cru/common/ClonablePtr.h" +#include "cru/ui/style/Styler.h" + +namespace cru::theme_builder::components::stylers { +class FontStylerEditor : public StylerEditor { + public: + FontStylerEditor(); + ~FontStylerEditor(); + + public: + ClonablePtr<ui::style::FontStyler> GetValue() const; + void SetValue(ui::style::FontStyler* value, bool trigger_change = true); + + ClonablePtr<ui::style::Styler> GetStyler() override { return GetValue(); } + + private: + properties::FontPropertyEditor font_editor_; +}; +} // namespace cru::theme_builder::components::stylers diff --git a/src/theme_builder/components/stylers/StylerEditor.cpp b/src/theme_builder/components/stylers/StylerEditor.cpp index d87e80a9..8b18969c 100644 --- a/src/theme_builder/components/stylers/StylerEditor.cpp +++ b/src/theme_builder/components/stylers/StylerEditor.cpp @@ -3,6 +3,7 @@ #include "CompoundStylerEditor.h" #include "ContentBrushStylerEditor.h" #include "CursorStylerEditor.h" +#include "FontStylerEditor.h" #include "MarginStylerEditor.h" #include "PaddingStylerEditor.h" #include "PreferredSizeStylerEditor.h" @@ -56,6 +57,10 @@ std::unique_ptr<StylerEditor> CreateStylerEditor(ui::style::Styler* styler) { auto editor = std::make_unique<ContentBrushStylerEditor>(); editor->SetValue(content_brush_styler); return editor; + } else if (auto font_styler = dynamic_cast<ui::style::FontStyler*>(styler)) { + auto editor = std::make_unique<FontStylerEditor>(); + editor->SetValue(font_styler); + return editor; } else { throw Exception(u"Unknown styler type"); } |