aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/controls/IconButton.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/cru/ui/controls/IconButton.h')
-rw-r--r--include/cru/ui/controls/IconButton.h48
1 files changed, 22 insertions, 26 deletions
diff --git a/include/cru/ui/controls/IconButton.h b/include/cru/ui/controls/IconButton.h
index 0bbda327..b061bc87 100644
--- a/include/cru/ui/controls/IconButton.h
+++ b/include/cru/ui/controls/IconButton.h
@@ -16,17 +16,15 @@ class CRU_UI_API IconButton : public Control,
public virtual IBorderControl,
public virtual IContentBrushControl {
public:
- static constexpr std::string_view kControlType = "IconButton";
+ static constexpr auto kControlName = "IconButton";
public:
IconButton();
IconButton(std::string_view icon_svg_path_data_string, const Rect& view_port);
~IconButton() override;
- std::string GetControlType() const final { return std::string(kControlType); }
-
- render::RenderObject* GetRenderObject() const override {
- return container_render_object_.get();
+ render::RenderObject* GetRenderObject() override {
+ return &container_render_object_;
}
public:
@@ -38,48 +36,46 @@ class CRU_UI_API IconButton : public Control,
return click_detector_.StateChangeEvent();
}
- IEvent<const helper::ClickEventArgs&>* ClickEvent() {
+ IEvent<const helper::ClickEventArgs&>* ClickEvent() override {
return click_detector_.ClickEvent();
}
void ApplyBorderStyle(const style::ApplyBorderStyleInfo& style) override {
- container_render_object_->ApplyBorderStyle(style);
+ container_render_object_.ApplyBorderStyle(style);
}
- std::shared_ptr<platform::graphics::IGeometry> GetIconGeometry() const {
- return geometry_render_object_->GetGeometry();
+ std::shared_ptr<platform::graphics::IGeometry> GetIconGeometry() {
+ return geometry_render_object_.GetGeometry();
}
void SetIconGeometry(std::shared_ptr<platform::graphics::IGeometry> geometry,
std::optional<Rect> view_port = std::nullopt) {
- geometry_render_object_->SetGeometry(std::move(geometry), view_port);
+ geometry_render_object_.SetGeometry(std::move(geometry), view_port);
}
- Rect GetIconViewPort() const {
- return geometry_render_object_->GetViewPort();
- }
+ Rect GetIconViewPort() { return geometry_render_object_.GetViewPort(); }
void SetIconViewPort(const Rect& view_port) {
- geometry_render_object_->SetViewPort(view_port);
+ geometry_render_object_.SetViewPort(view_port);
}
- std::shared_ptr<platform::graphics::IBrush> GetIconFillBrush() const {
- return geometry_render_object_->GetFillBrush();
+ std::shared_ptr<platform::graphics::IBrush> GetIconFillBrush() {
+ return geometry_render_object_.GetFillBrush();
}
void SetIconFillBrush(std::shared_ptr<platform::graphics::IBrush> brush) {
- geometry_render_object_->SetFillBrush(std::move(brush));
+ geometry_render_object_.SetFillBrush(std::move(brush));
}
- std::shared_ptr<platform::graphics::IBrush> GetIconStrokeBrush() const {
- return geometry_render_object_->GetStrokeBrush();
+ std::shared_ptr<platform::graphics::IBrush> GetIconStrokeBrush() {
+ return geometry_render_object_.GetStrokeBrush();
}
void SetIconStrokeBrush(std::shared_ptr<platform::graphics::IBrush> brush) {
- geometry_render_object_->SetStrokeBrush(std::move(brush));
+ geometry_render_object_.SetStrokeBrush(std::move(brush));
}
- float GetIconStrokeWidth() const {
- return geometry_render_object_->GetStrokeWidth();
+ float GetIconStrokeWidth() {
+ return geometry_render_object_.GetStrokeWidth();
}
void SetIconStrokeWidth(float width) {
- geometry_render_object_->SetStrokeWidth(width);
+ geometry_render_object_.SetStrokeWidth(width);
}
void SetIconFillColor(const Color& color);
@@ -89,7 +85,7 @@ class CRU_UI_API IconButton : public Control,
std::string_view icon_svg_path_data_string_resource_key,
const Rect& view_port);
- std::shared_ptr<platform::graphics::IBrush> GetContentBrush() const override {
+ std::shared_ptr<platform::graphics::IBrush> GetContentBrush() override {
return GetIconFillBrush();
}
@@ -99,8 +95,8 @@ class CRU_UI_API IconButton : public Control,
}
private:
- std::unique_ptr<render::BorderRenderObject> container_render_object_;
- std::unique_ptr<render::GeometryRenderObject> geometry_render_object_;
+ render::BorderRenderObject container_render_object_;
+ render::GeometryRenderObject geometry_render_object_;
helper::ClickDetector click_detector_;
};
} // namespace cru::ui::controls