aboutsummaryrefslogtreecommitdiff
path: root/src/ui/render/TreeRenderObject.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/render/TreeRenderObject.cpp')
-rw-r--r--src/ui/render/TreeRenderObject.cpp18
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