diff options
author | crupest <crupest@outlook.com> | 2022-02-09 23:00:49 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-02-09 23:00:49 +0800 |
commit | d18b5453d7ffd19667ee8ac125b34ab5328f0dc3 (patch) | |
tree | 10b969c744dd0ef90a183e4ffacddc818b86534e /include/cru/ui/render/LayoutRenderObject.h | |
parent | e18c4fb46d7913f337cc25b9a6e3a25359c3f10a (diff) | |
download | cru-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.h | 12 |
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) { |