Added multiline support for LogView's messages

This commit is contained in:
rxi 2020-05-06 00:06:27 +01:00
parent 15cfbfbc46
commit 7610e1064f
2 changed files with 17 additions and 7 deletions

View file

@ -226,7 +226,7 @@ end
local function log(icon, icon_color, fmt, ...) local function log(icon, icon_color, fmt, ...)
local text = string.format(fmt, ...):gsub("%s", " ") local text = string.format(fmt, ...)
if icon then if icon then
core.status_view:show_message(icon, icon_color, text) core.status_view:show_message(icon, icon_color, text)
end end

View file

@ -33,6 +33,18 @@ function LogView:update()
end end
local function draw_text_multiline(font, text, x, y, color)
local th = font:get_height()
local resx, resy = x, y
for line in text:gmatch("[^\n]+") do
resy = y
resx = renderer.draw_text(style.font, line, x, y, color)
y = y + th
end
return resx, resy
end
function LogView:draw() function LogView:draw()
self:draw_background(style.background) self:draw_background(style.background)
@ -47,14 +59,12 @@ function LogView:draw()
x = renderer.draw_text(style.font, time, x, y, style.dim) x = renderer.draw_text(style.font, time, x, y, style.dim)
x = x + style.padding.x x = x + style.padding.x
local subx = x local subx = x
x = renderer.draw_text(style.font, item.text, x, y, style.text) x, y = draw_text_multiline(style.font, item.text, x, y, style.text)
x = renderer.draw_text(style.font, " at " .. item.at, x, y, style.dim) renderer.draw_text(style.font, " at " .. item.at, x, y, style.dim)
y = y + th y = y + th
if item.info then if item.info then
for line in item.info:gmatch("[^\n]+") do subx, y = draw_text_multiline(style.font, item.info, subx, y, style.dim)
renderer.draw_text(style.font, line, subx, y, style.dim) y = y + th
y = y + th
end
end end
y = y + style.padding.y y = y + style.padding.y
end end