aboutsummaryrefslogtreecommitdiff
path: root/include/cru/ui/render/LayoutRenderObject.h
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-02-09 23:00:49 +0800
committercrupest <crupest@outlook.com>2022-02-09 23:00:49 +0800
commitd18b5453d7ffd19667ee8ac125b34ab5328f0dc3 (patch)
tree10b969c744dd0ef90a183e4ffacddc818b86534e /include/cru/ui/render/LayoutRenderObject.h
parente18c4fb46d7913f337cc25b9a6e3a25359c3f10a (diff)
downloadcru-d18b5453d7ffd19667ee8ac125b34ab5328f0dc3.tar.gz
cru-d18b5453d7ffd19667ee8ac125b34ab5328f0dc3.tar.bz2
cru-d18b5453d7ffd19667ee8ac125b34ab5328f0dc3.zip
...
Diffstat (limited to 'include/cru/ui/render/LayoutRenderObject.h')
-rw-r--r--include/cru/ui/render/LayoutRenderObject.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/include/cru/ui/render/LayoutRenderObject.h b/include/cru/ui/render/LayoutRenderObject.h
index 05da1bb8..62ee9005 100644
--- a/include/cru/ui/render/LayoutRenderObject.h
+++ b/include/cru/ui/render/LayoutRenderObject.h
@@ -1,7 +1,7 @@
#pragma once
#include "RenderObject.h"
-#include "cru/platform/graphics/util/Painter.h"
+#include "cru/platform/graphics/Painter.h"
namespace cru::ui::render {
template <typename TChildLayoutData>
@@ -54,6 +54,16 @@ class CRU_UI_API LayoutRenderObject : public RenderObject {
return children_[position].layout_data;
}
+ void Draw(platform::graphics::IPainter* painter) override {
+ for (auto& child : children_) {
+ painter->PushState();
+ painter->ConcatTransform(
+ Matrix::Translation(child.render_object->GetOffset()));
+ child.render_object->Draw(painter);
+ painter->PopState();
+ }
+ }
+
RenderObject* HitTest(const Point& point) override {
const auto child_count = GetChildCount();
for (auto i = child_count - 1; i >= 0; --i) {