aboutsummaryrefslogtreecommitdiff
path: root/src/ui/controls/border.h
diff options
context:
space:
mode:
authorYuqian Yang <crupest@outlook.com>2018-10-01 17:11:11 +0000
committerYuqian Yang <crupest@outlook.com>2018-10-01 17:11:11 +0000
commit30ecda8bb354d5982978af97aa90b5f49d9ea195 (patch)
treea271bddb244fa2041f14f8d46d249457cee09e5f /src/ui/controls/border.h
parent398b8f3ba535bb43c4b8593e3027c14894a7a211 (diff)
parent040a6c18f18100b825a56443a73aa1de64e4518c (diff)
downloadcru-30ecda8bb354d5982978af97aa90b5f49d9ea195.tar.gz
cru-30ecda8bb354d5982978af97aa90b5f49d9ea195.tar.bz2
cru-30ecda8bb354d5982978af97aa90b5f49d9ea195.zip
Merge branch '9-border' into 'master'
Resolve "Abstract out border control of button and border." Closes #9 See merge request crupest/CruUI!11
Diffstat (limited to 'src/ui/controls/border.h')
-rw-r--r--src/ui/controls/border.h45
1 files changed, 7 insertions, 38 deletions
diff --git a/src/ui/controls/border.h b/src/ui/controls/border.h
index 74e12c92..7880e690 100644
--- a/src/ui/controls/border.h
+++ b/src/ui/controls/border.h
@@ -3,6 +3,7 @@
#include <initializer_list>
#include "ui/control.h"
+#include "border_delegate.h"
namespace cru::ui::controls
{
@@ -34,52 +35,20 @@ namespace cru::ui::controls
void SetDrawBorder(bool draw_border);
- Microsoft::WRL::ComPtr<ID2D1Brush> GetBorderBrush() const
+ BorderProperty::Ptr GetBorderProperty() const
{
- return border_brush_;
+ return border_delegate_.GetBorderProperty();
}
- void SetBorderBrush(Microsoft::WRL::ComPtr<ID2D1Brush> border_brush);
-
- float GetBorderWidth() const
- {
- return border_width_;
- }
-
- void SetBorderWidth(float border_width);
-
- Microsoft::WRL::ComPtr<ID2D1StrokeStyle> GetBorderStrokeStyle() const
- {
- return border_stroke_style_;
- }
-
- void SetBorderStrokeStyle(Microsoft::WRL::ComPtr<ID2D1StrokeStyle> stroke_style);
-
- float GetBorderRadiusX() const
- {
- return border_radius_x_;
- }
-
- void SetBorderRadiusX(float border_radius_x);
-
- float GetBorderRadiusY() const
- {
- return border_radius_y_;
- }
-
- void SetBorderRadiusY(float border_radius_y);
-
protected:
void OnDraw(ID2D1DeviceContext* device_context) override;
+ Size OnMeasure(const Size& available_size) override;
+ void OnLayout(const Rect& rect) override;
+
private:
bool draw_border_ = true;
- Microsoft::WRL::ComPtr<ID2D1Brush> border_brush_;
- float border_width_ = 1.0f;
- Microsoft::WRL::ComPtr<ID2D1StrokeStyle> border_stroke_style_ = nullptr;
-
- float border_radius_x_ = 0.0f;
- float border_radius_y_ = 0.0f;
+ BorderDelegate border_delegate_;
};
}