From 902ddba34afa1595ee5b4c19b0a97468b0f0e12f Mon Sep 17 00:00:00 2001 From: Trevor Redfern Date: Mon, 27 Jan 2020 21:22:20 -0500 Subject: [PATCH] Translates custom content properly --- moonpie/ui/drawing.lua | 11 +++++++++-- moonpie/ui/drawing_spec.lua | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/moonpie/ui/drawing.lua b/moonpie/ui/drawing.lua index db7f927..af0bf34 100644 --- a/moonpie/ui/drawing.lua +++ b/moonpie/ui/drawing.lua @@ -6,7 +6,6 @@ local drawing = {} local colors = require "moonpie.graphics.colors" local image = require "moonpie.graphics.image" -local safecall = require "moonpie.utility.safe_call" function drawing.standard(node) if node.hidden then return end @@ -15,7 +14,7 @@ function drawing.standard(node) drawing.draw_background(node) drawing.draw_border(node) drawing.image(node) - safecall(node.draw_component, node) + drawing.custom_content(node) love.graphics.translate(node.box:content_position()) @@ -74,4 +73,12 @@ function drawing.image(node) love.graphics.pop() end +function drawing.custom_content(node) + if not node.draw_component then return end + love.graphics.push() + love.graphics.translate(node.box:content_position()) + node:draw_component() + love.graphics.pop() +end + return drawing diff --git a/moonpie/ui/drawing_spec.lua b/moonpie/ui/drawing_spec.lua index 65655f9..699eaa0 100644 --- a/moonpie/ui/drawing_spec.lua +++ b/moonpie/ui/drawing_spec.lua @@ -227,4 +227,18 @@ describe("Renderers", function() node:paint() assert.spy(c.draw_component).was.called_with(node) end) + + it("translates the custom content properly", function() + local c = { + draw_component = spy.new(function() end), + width = 100, + height = 100, + padding = 10, + margin = 10 + } + local node = Node(c) + node:layout() + drawing.custom_content(node) + assert.spy(love.graphics.translate).was.called_with(20, 20) + end) end)