diff options
author | crupest <crupest@outlook.com> | 2022-05-15 14:15:31 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-05-15 14:15:31 +0800 |
commit | 34a64e6ffefaab007578932ddbab931a25f1d56e (patch) | |
tree | 541fdb8279e829a129df62288d09916bf23c9200 /src/ThemeBuilder/components/stylers/StylerEditor.cpp | |
parent | 8ad2966933957ac5d6ff8dcd5e732736fd5e4dc6 (diff) | |
download | cru-34a64e6ffefaab007578932ddbab931a25f1d56e.tar.gz cru-34a64e6ffefaab007578932ddbab931a25f1d56e.tar.bz2 cru-34a64e6ffefaab007578932ddbab931a25f1d56e.zip |
...
Diffstat (limited to 'src/ThemeBuilder/components/stylers/StylerEditor.cpp')
-rw-r--r-- | src/ThemeBuilder/components/stylers/StylerEditor.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/ThemeBuilder/components/stylers/StylerEditor.cpp b/src/ThemeBuilder/components/stylers/StylerEditor.cpp new file mode 100644 index 00000000..0348adbd --- /dev/null +++ b/src/ThemeBuilder/components/stylers/StylerEditor.cpp @@ -0,0 +1,63 @@ +#include "StylerEditor.h" +#include "../Common.h" +#include "BorderStylerEditor.h" +#include "CompoundStylerEditor.h" +#include "ContentBrushStylerEditor.h" +#include "CursorStylerEditor.h" +#include "FontStylerEditor.h" +#include "MarginStylerEditor.h" +#include "PaddingStylerEditor.h" +#include "PreferredSizeStylerEditor.h" +#include "cru/ui/controls/FlexLayout.h" +#include "cru/ui/render/FlexLayoutRenderObject.h" +#include "cru/ui/style/Styler.h" + +namespace cru::theme_builder::components::stylers { +StylerEditor::StylerEditor() {} + +StylerEditor::~StylerEditor() {} + +std::unique_ptr<StylerEditor> CreateStylerEditor(ui::style::Styler* styler) { + if (auto compound_styler = dynamic_cast<ui::style::CompoundStyler*>(styler)) { + auto result = std::make_unique<CompoundStylerEditor>(); + result->SetValue(compound_styler); + return result; + } else if (auto border_styler = + dynamic_cast<ui::style::BorderStyler*>(styler)) { + auto editor = std::make_unique<BorderStylerEditor>(); + editor->SetValue(border_styler); + return editor; + } else if (auto cursor_styler = + dynamic_cast<ui::style::CursorStyler*>(styler)) { + auto editor = std::make_unique<CursorStylerEditor>(); + editor->SetValue(cursor_styler); + return editor; + } else if (auto preferred_size_styler = + dynamic_cast<ui::style::PreferredSizeStyler*>(styler)) { + auto editor = std::make_unique<PreferredSizeStylerEditor>(); + editor->SetValue(preferred_size_styler); + return editor; + } else if (auto margin_styler = + dynamic_cast<ui::style::MarginStyler*>(styler)) { + auto editor = std::make_unique<MarginStylerEditor>(); + editor->SetValue(margin_styler); + return editor; + } else if (auto padding_styler = + dynamic_cast<ui::style::PaddingStyler*>(styler)) { + auto editor = std::make_unique<PaddingStylerEditor>(); + editor->SetValue(padding_styler); + return editor; + } else if (auto content_brush_styler = + dynamic_cast<ui::style::ContentBrushStyler*>(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"); + } +} +} // namespace cru::theme_builder::components::stylers |