diff options
Diffstat (limited to 'src/ui/render/TreeRenderObject.cpp')
| -rw-r--r-- | src/ui/render/TreeRenderObject.cpp | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/ui/render/TreeRenderObject.cpp b/src/ui/render/TreeRenderObject.cpp index 758108f6..7df3d5b6 100644 --- a/src/ui/render/TreeRenderObject.cpp +++ b/src/ui/render/TreeRenderObject.cpp @@ -1,5 +1,4 @@ #include "cru/ui/render/TreeRenderObject.h" -#include "cru/platform/graphics/Painter.h" #include "cru/ui/render/MeasureRequirement.h" #include "cru/ui/render/RenderObject.h" @@ -78,24 +77,17 @@ RenderObject* TreeRenderObject::HitTest(const Point& point) { } void TreeRenderObjectItemDraw(TreeRenderObjectItem* item, - platform::graphics::IPainter* painter) { + RenderObjectDrawContext& context) { auto render_object = item->GetRenderObject(); if (render_object) { - painter->PushState(); - painter->ConcatTransform(Matrix::Translation(render_object->GetOffset())); - render_object->Draw(painter); - painter->PopState(); + context.DrawChild(render_object); } for (auto child : item->GetChildren()) { - TreeRenderObjectItemDraw(child, painter); + TreeRenderObjectItemDraw(child, context); } } -void TreeRenderObject::Draw(platform::graphics::IPainter* painter) { - TreeRenderObjectItemDraw(root_item_, painter); -} - static Size MeasureTreeRenderObjectItem(MeasureSize max_size, TreeRenderObjectItem* item, float tab_width) { @@ -162,4 +154,8 @@ static void LayoutTreeRenderObjectItem(Rect rect, TreeRenderObjectItem* item, void TreeRenderObject::OnLayoutContent(const Rect& content_rect) { LayoutTreeRenderObjectItem(content_rect, root_item_, tab_width_); } + +void TreeRenderObject::OnDraw(RenderObjectDrawContext& context) { + TreeRenderObjectItemDraw(root_item_, context); +} } // namespace cru::ui::render |
