diff options
author | crupest <crupest@outlook.com> | 2019-04-01 18:08:58 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2019-04-01 18:08:58 +0800 |
commit | de00126c6aeba189a50296df455dd516e21e4176 (patch) | |
tree | 3d89a8a36a3603096d4371230c2d071f91e9e986 /src/ui/render/border_render_object.hpp | |
parent | 055a3cde0cd19c896f3e498b774078654555c065 (diff) | |
download | cru-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.hpp | 92 |
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 |