aboutsummaryrefslogtreecommitdiff
path: root/include/cru/platform/graph/brush.hpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2019-06-27 00:18:48 +0800
committercrupest <crupest@outlook.com>2019-06-27 00:18:48 +0800
commitbaa7cf141b8121473edceae16c1a20a6d47bd202 (patch)
tree9349633a9d0bc286fe29f480bd70e4c2ad1f3075 /include/cru/platform/graph/brush.hpp
parentf404a3b2eb7bb9865d0c6f938538899996a53d8c (diff)
downloadcru-baa7cf141b8121473edceae16c1a20a6d47bd202.tar.gz
cru-baa7cf141b8121473edceae16c1a20a6d47bd202.tar.bz2
cru-baa7cf141b8121473edceae16c1a20a6d47bd202.zip
......
Diffstat (limited to 'include/cru/platform/graph/brush.hpp')
-rw-r--r--include/cru/platform/graph/brush.hpp49
1 files changed, 41 insertions, 8 deletions
diff --git a/include/cru/platform/graph/brush.hpp b/include/cru/platform/graph/brush.hpp
index 7688ec4a..d292ae82 100644
--- a/include/cru/platform/graph/brush.hpp
+++ b/include/cru/platform/graph/brush.hpp
@@ -1,13 +1,46 @@
#pragma once
-#include "cru/common/base.hpp"
-
-#include "cru/common/ui_base.hpp"
+#include "../graphic_base.hpp"
+#include "../native_resource.hpp"
namespace cru::platform::graph {
-struct IBrush : public virtual Interface {};
+class Brush : public NativeResource {
+ protected:
+ Brush() = default;
+
+ public:
+ Brush(const Brush& other) = delete;
+ Brush& operator=(const Brush& other) = delete;
+
+ Brush(Brush&& other) = delete;
+ Brush& operator=(Brush&& other) = delete;
+
+ ~Brush() override = default;
+};
+
+class SolidColorBrush : public Brush {
+ protected:
+ SolidColorBrush() = default;
+
+ public:
+ SolidColorBrush(const SolidColorBrush& other) = delete;
+ SolidColorBrush& operator=(const SolidColorBrush& other) = delete;
+
+ SolidColorBrush(SolidColorBrush&& other) = delete;
+ SolidColorBrush& operator=(SolidColorBrush&& other) = delete;
+
+ ~SolidColorBrush() = default;
+
+ public:
+ Color GetColor() { return color_; }
+ void SetColor(const Color& color) {
+ color_ = color;
+ OnSetColor(color);
+ }
+
+ protected:
+ virtual void OnSetColor(const Color& color) = 0;
-struct ISolidColorBrush : public virtual IBrush {
- virtual ui::Color GetColor() = 0;
- virtual void SetColor(const ui::Color& color) = 0;
+ protected:
+ Color color_ = colors::black;
};
-} // namespace cru::platform
+} // namespace cru::platform::graph