diff options
| author | crupest <crupest@outlook.com> | 2022-02-14 22:51:37 +0800 |
|---|---|---|
| committer | crupest <crupest@outlook.com> | 2022-02-14 22:51:37 +0800 |
| commit | 21c1c3281cd4186d9810d68122e9e8e92da714ad (patch) | |
| tree | a458a6329b82145dbd7e255cf11f203c9116dafe /src/theme_builder/components/styler | |
| parent | 6593a25baa01687b9462f792ce91bd46909df229 (diff) | |
| download | cru-21c1c3281cd4186d9810d68122e9e8e92da714ad.tar.gz cru-21c1c3281cd4186d9810d68122e9e8e92da714ad.tar.bz2 cru-21c1c3281cd4186d9810d68122e9e8e92da714ad.zip | |
...
Diffstat (limited to 'src/theme_builder/components/styler')
| -rw-r--r-- | src/theme_builder/components/styler/BorderStylerEditor.cpp | 95 | ||||
| -rw-r--r-- | src/theme_builder/components/styler/BorderStylerEditor.h | 41 |
2 files changed, 0 insertions, 136 deletions
diff --git a/src/theme_builder/components/styler/BorderStylerEditor.cpp b/src/theme_builder/components/styler/BorderStylerEditor.cpp deleted file mode 100644 index 819e67c0..00000000 --- a/src/theme_builder/components/styler/BorderStylerEditor.cpp +++ /dev/null @@ -1,95 +0,0 @@ -#include "BorderStylerEditor.h" -#include "cru/common/ClonablePtr.h" -#include "cru/platform/graphics/Brush.h" -#include "cru/platform/graphics/Factory.h" -#include "cru/platform/gui/UiApplication.h" -#include "cru/ui/style/ApplyBorderStyleInfo.h" -#include "cru/ui/style/Styler.h" - -namespace cru::theme_builder::components::styler { -BorderStylerEditor::BorderStylerEditor() { - container_.AddChild(corner_radius_editor_.GetRootControl()); - container_.AddChild(thickness_editor_.GetRootControl()); - container_.AddChild(brush_editor_.GetRootControl()); - container_.AddChild(foreground_brush_editor_.GetRootControl()); - container_.AddChild(background_brush_editor_.GetRootControl()); - - auto connect = [this](IEvent<std::nullptr_t>* event) { - event->AddHandler( - [this](std::nullptr_t) { this->change_event_.Raise(nullptr); }); - }; - - connect(corner_radius_editor_.ChangeEvent()); - connect(thickness_editor_.ChangeEvent()); - connect(brush_editor_.ChangeEvent()); - connect(foreground_brush_editor_.ChangeEvent()); - connect(background_brush_editor_.ChangeEvent()); -} - -BorderStylerEditor::~BorderStylerEditor() { container_.RemoveFromParent(); } - -ClonablePtr<ui::style::BorderStyler> BorderStylerEditor::GetValue() { - auto graphics_factory = - platform::gui::IUiApplication::GetInstance()->GetGraphicsFactory(); - - ui::style::ApplyBorderStyleInfo border_style; - border_style.border_radius = corner_radius_editor_.GetValue(); - border_style.border_thickness = thickness_editor_.GetValue(); - - if (brush_editor_.IsEnabled()) { - border_style.border_brush = graphics_factory->CreateSolidColorBrush( - brush_editor_.GetEditor()->GetValue()); - } - - if (foreground_brush_editor_.IsEnabled()) { - border_style.foreground_brush = graphics_factory->CreateSolidColorBrush( - foreground_brush_editor_.GetEditor()->GetValue()); - } - - if (background_brush_editor_.IsEnabled()) { - border_style.background_brush = graphics_factory->CreateSolidColorBrush( - background_brush_editor_.GetEditor()->GetValue()); - } - - return ui::style::BorderStyler::Create(border_style); -} - -void BorderStylerEditor::SetValue( - const ClonablePtr<ui::style::BorderStyler>& styler) { - Expects(styler); - - auto border_style = styler->GetBorderStyle(); - corner_radius_editor_.SetValue(border_style.border_radius, false); - thickness_editor_.SetValue(border_style.border_thickness, false); - - brush_editor_.SetEnabled(border_style.border_brush.has_value(), false); - if (border_style.border_brush.has_value()) { - brush_editor_.GetEditor()->SetValue( - std::dynamic_pointer_cast<platform::graphics::ISolidColorBrush>( - border_style.border_brush.value()) - ->GetColor(), - false); - } - - foreground_brush_editor_.SetEnabled(border_style.foreground_brush.has_value(), - false); - if (border_style.foreground_brush.has_value()) { - foreground_brush_editor_.GetEditor()->SetValue( - std::dynamic_pointer_cast<platform::graphics::ISolidColorBrush>( - border_style.foreground_brush.value()) - ->GetColor(), - false); - } - - background_brush_editor_.SetEnabled(border_style.background_brush.has_value(), - false); - if (border_style.background_brush.has_value()) { - background_brush_editor_.GetEditor()->SetValue( - std::dynamic_pointer_cast<platform::graphics::ISolidColorBrush>( - border_style.background_brush.value()) - ->GetColor(), - false); - } -} - -} // namespace cru::theme_builder::components::styler diff --git a/src/theme_builder/components/styler/BorderStylerEditor.h b/src/theme_builder/components/styler/BorderStylerEditor.h deleted file mode 100644 index 991647e7..00000000 --- a/src/theme_builder/components/styler/BorderStylerEditor.h +++ /dev/null @@ -1,41 +0,0 @@ -#pragma once -#include "../properties/ColorPropertyEditor.h" -#include "../properties/CornerRadiusPropertyEditor.h" -#include "../properties/OptionalPropertyEditor.h" -#include "../properties/ThicknessPropertyEditor.h" -#include "cru/common/ClonablePtr.h" -#include "cru/common/Event.h" -#include "cru/ui/components/Component.h" -#include "cru/ui/controls/CheckBox.h" -#include "cru/ui/controls/FlexLayout.h" -#include "cru/ui/style/Styler.h" - -namespace cru::theme_builder::components::styler { -class BorderStylerEditor : public ui::components::Component { - public: - BorderStylerEditor(); - ~BorderStylerEditor() override; - - ui::controls::Control* GetRootControl() override { return nullptr; } - - ClonablePtr<ui::style::BorderStyler> GetValue(); - void SetValue(const ClonablePtr<ui::style::BorderStyler>& styler); - - IEvent<std::nullptr_t>* ChangeEvent() { return &change_event_; } - - private: - ui::controls::FlexLayout container_; - properties::OptionalPropertyEditor<properties::CornerRadiusPropertyEditor> - corner_radius_editor_; - properties::OptionalPropertyEditor<properties::ThicknessPropertyEditor> - thickness_editor_; - properties::OptionalPropertyEditor<properties::ColorPropertyEditor> - brush_editor_; - properties::OptionalPropertyEditor<properties::ColorPropertyEditor> - foreground_brush_editor_; - properties::OptionalPropertyEditor<properties::ColorPropertyEditor> - background_brush_editor_; - - Event<std::nullptr_t> change_event_; -}; -} // namespace cru::theme_builder::components::styler |
