aboutsummaryrefslogtreecommitdiff
path: root/src/ui/render/border_render_object.hpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2019-04-01 18:08:58 +0800
committercrupest <crupest@outlook.com>2019-04-01 18:08:58 +0800
commitde00126c6aeba189a50296df455dd516e21e4176 (patch)
tree3d89a8a36a3603096d4371230c2d071f91e9e986 /src/ui/render/border_render_object.hpp
parent055a3cde0cd19c896f3e498b774078654555c065 (diff)
downloadcru-de00126c6aeba189a50296df455dd516e21e4176.tar.gz
cru-de00126c6aeba189a50296df455dd516e21e4176.tar.bz2
cru-de00126c6aeba189a50296df455dd516e21e4176.zip
...
Diffstat (limited to 'src/ui/render/border_render_object.hpp')
-rw-r--r--src/ui/render/border_render_object.hpp92
1 files changed, 0 insertions, 92 deletions
diff --git a/src/ui/render/border_render_object.hpp b/src/ui/render/border_render_object.hpp
deleted file mode 100644
index 80db648a..00000000
--- a/src/ui/render/border_render_object.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-#pragma once
-#include "pre.hpp"
-
-#include <wrl/client.h> // for ComPtr
-
-#include "render_object.hpp"
-
-// forward declarations
-struct ID2D1Brush;
-struct ID2D1Geometry;
-
-namespace cru::ui::render {
-struct CornerRadius {
- constexpr CornerRadius()
- : left_top(), right_top(), left_bottom(), right_bottom() {}
- constexpr CornerRadius(const Point& value)
- : left_top(value),
- right_top(value),
- left_bottom(value),
- right_bottom(value) {}
- constexpr CornerRadius(Point left_top, Point right_top, Point left_bottom,
- Point right_bottom)
- : left_top(left_top),
- right_top(right_top),
- left_bottom(left_bottom),
- right_bottom(right_bottom) {}
-
- Point left_top;
- Point right_top;
- Point left_bottom;
- Point right_bottom;
-};
-
-class BorderRenderObject : public RenderObject {
- public:
- explicit BorderRenderObject(ID2D1Brush* brush);
- BorderRenderObject(const BorderRenderObject& other) = delete;
- BorderRenderObject(BorderRenderObject&& other) = delete;
- BorderRenderObject& operator=(const BorderRenderObject& other) = delete;
- BorderRenderObject& operator=(BorderRenderObject&& other) = delete;
- ~BorderRenderObject() override;
-
- bool IsEnabled() const { return is_enabled_; }
- void SetEnabled(bool enabled) { is_enabled_ = enabled; }
-
- ID2D1Brush* GetBrush() const { return border_brush_; }
- void SetBrush(ID2D1Brush* new_brush);
-
- Thickness GetBorderWidth() const { return border_thickness_; }
- void SetBorderWidth(const Thickness& thickness) {
- border_thickness_ = thickness;
- }
-
- CornerRadius GetCornerRadius() const { return corner_radius_; }
- void SetCornerRadius(const CornerRadius& new_corner_radius) {
- corner_radius_ = new_corner_radius;
- }
-
- void Refresh() { RecreateGeometry(); }
-
- void Draw(ID2D1RenderTarget* render_target) override;
-
- RenderObject* HitTest(const Point& point) override;
-
- protected:
- void OnAddChild(RenderObject* new_child, int position) override;
-
- void OnSizeChanged(const Size& old_size, const Size& new_size) override;
-
- void OnMeasureCore(const Size& available_size) override;
- void OnLayoutCore(const Rect& rect) override;
- Size OnMeasureContent(const Size& available_size) override;
- void OnLayoutContent(const Rect& content_rect) override;
-
- private:
- RenderObject* GetChild() const {
- return GetChildren().empty() ? nullptr : GetChildren()[0];
- }
-
- void RecreateGeometry();
-
- private:
- bool is_enabled_ = false;
-
- ID2D1Brush* border_brush_ = nullptr;
- Thickness border_thickness_ = Thickness::Zero();
- CornerRadius corner_radius_{};
-
- ID2D1Geometry* geometry_ = nullptr;
- ID2D1Geometry* border_outer_geometry_ = nullptr;
-};
-} // namespace cru::ui::render