aboutsummaryrefslogtreecommitdiff
path: root/src/ui/render/BorderRenderObject.cpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-06-28 22:17:14 +0800
committercrupest <crupest@outlook.com>2020-06-28 22:17:14 +0800
commit427bd31059fcdca5806a149238e91173667953c1 (patch)
treedec0794e8445040f8b177aaa29e0600380e5420f /src/ui/render/BorderRenderObject.cpp
parent26da84f59396075118ee769654471159e1f49980 (diff)
downloadcru-427bd31059fcdca5806a149238e91173667953c1.tar.gz
cru-427bd31059fcdca5806a149238e91173667953c1.tar.bz2
cru-427bd31059fcdca5806a149238e91173667953c1.zip
...
Diffstat (limited to 'src/ui/render/BorderRenderObject.cpp')
-rw-r--r--src/ui/render/BorderRenderObject.cpp43
1 files changed, 21 insertions, 22 deletions
diff --git a/src/ui/render/BorderRenderObject.cpp b/src/ui/render/BorderRenderObject.cpp
index 74e50561..6513c4c4 100644
--- a/src/ui/render/BorderRenderObject.cpp
+++ b/src/ui/render/BorderRenderObject.cpp
@@ -16,28 +16,6 @@ BorderRenderObject::BorderRenderObject() {
BorderRenderObject::~BorderRenderObject() {}
-void BorderRenderObject::Draw(platform::graph::IPainter* painter) {
- if (background_brush_ != nullptr)
- painter->FillGeometry(border_inner_geometry_.get(),
- background_brush_.get());
- if (is_border_enabled_) {
- if (border_brush_ == nullptr) {
- log::Warn("Border is enabled but brush is null");
- } else {
- painter->FillGeometry(geometry_.get(), border_brush_.get());
- }
- }
- if (const auto child = GetSingleChild()) {
- auto offset = child->GetOffset();
- platform::graph::util::WithTransform(
- painter, platform::Matrix::Translation(offset.x, offset.y),
- [child](auto p) { child->Draw(p); });
- }
- if (foreground_brush_ != nullptr)
- painter->FillGeometry(border_inner_geometry_.get(),
- foreground_brush_.get());
-}
-
void BorderRenderObject::SetBorderStyle(const BorderStyle& style) {
border_brush_ = style.border_brush;
border_thickness_ = style.border_thickness;
@@ -73,6 +51,27 @@ RenderObject* BorderRenderObject::HitTest(const Point& point) {
}
}
+void BorderRenderObject::OnDrawCore(platform::graph::IPainter* painter) {
+ if (background_brush_ != nullptr)
+ painter->FillGeometry(border_inner_geometry_.get(),
+ background_brush_.get());
+ if (is_border_enabled_) {
+ if (border_brush_ == nullptr) {
+ log::Warn("Border is enabled but brush is null");
+ } else {
+ painter->FillGeometry(geometry_.get(), border_brush_.get());
+ }
+ }
+
+ DefaultDrawContent(painter);
+
+ if (foreground_brush_ != nullptr)
+ painter->FillGeometry(border_inner_geometry_.get(),
+ foreground_brush_.get());
+
+ DefaultDrawChildren(painter);
+}
+
Size BorderRenderObject::OnMeasureCore(const MeasureRequirement& requirement,
const MeasureSize& preferred_size) {
if (!is_border_enabled_) {