aboutsummaryrefslogtreecommitdiff
path: root/src/ui/border_property.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/border_property.hpp')
-rw-r--r--src/ui/border_property.hpp83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/ui/border_property.hpp b/src/ui/border_property.hpp
new file mode 100644
index 00000000..a280fe44
--- /dev/null
+++ b/src/ui/border_property.hpp
@@ -0,0 +1,83 @@
+#pragma once
+
+#include "system_headers.hpp"
+
+#include "base.hpp"
+
+
+namespace cru::ui
+{
+ class BorderProperty final
+ {
+ public:
+ BorderProperty();
+ explicit BorderProperty(Microsoft::WRL::ComPtr<ID2D1Brush> brush);
+ BorderProperty(const BorderProperty& other) = default;
+ BorderProperty(BorderProperty&& other) = default;
+ BorderProperty& operator=(const BorderProperty& other) = default;
+ BorderProperty& operator=(BorderProperty&& other) = default;
+ ~BorderProperty() = default;
+
+
+ Microsoft::WRL::ComPtr<ID2D1Brush> GetBrush() const
+ {
+ return brush_;
+ }
+
+ float GetStrokeWidth() const
+ {
+ return stroke_width_;
+ }
+
+ Microsoft::WRL::ComPtr<ID2D1StrokeStyle> GetStrokeStyle() const
+ {
+ return stroke_style_;
+ }
+
+ float GetRadiusX() const
+ {
+ return radius_x_;
+ }
+
+ float GetRadiusY() const
+ {
+ return radius_y_;
+ }
+
+ void SetBrush(Microsoft::WRL::ComPtr<ID2D1Brush> brush)
+ {
+ Require(brush == nullptr, "Brush of BorderProperty mustn't be null.");
+ brush_ = std::move(brush);
+ }
+
+ void SetStrokeWidth(const float stroke_width)
+ {
+ Require(stroke_width >= 0.0f, "Stroke width must be no less than 0.");
+ stroke_width_ = stroke_width;
+ }
+
+ void SetStrokeStyle(Microsoft::WRL::ComPtr<ID2D1StrokeStyle> stroke_style)
+ {
+ stroke_style_ = std::move(stroke_style);
+ }
+
+ void SetRadiusX(const float radius_x)
+ {
+ Require(radius_x >= 0.0f, "Radius-x must be no less than 0.");
+ radius_x_ = radius_x;
+ }
+
+ void SetRadiusY(const float radius_y)
+ {
+ Require(radius_y >= 0.0f, "Radius-y must be no less than 0.");
+ radius_y_ = radius_y;
+ }
+
+ private:
+ Microsoft::WRL::ComPtr<ID2D1Brush> brush_;
+ float stroke_width_ = 1.0f;
+ Microsoft::WRL::ComPtr<ID2D1StrokeStyle> stroke_style_ = nullptr;
+ float radius_x_ = 0.0f;
+ float radius_y_ = 0.0f;
+ };
+}