Initial commit
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
local core = require "core"
|
||||
local common = require "core.common"
|
||||
local config = require "core.config"
|
||||
local style = require "core.style"
|
||||
local View = require "core.view"
|
||||
|
||||
|
||||
local LogView = View:extend()
|
||||
|
||||
|
||||
function LogView:new()
|
||||
LogView.super.new(self)
|
||||
self.last_item = 0
|
||||
self.scrollable = true
|
||||
self.yoffset = 0
|
||||
end
|
||||
|
||||
|
||||
function LogView:get_name()
|
||||
return "Log"
|
||||
end
|
||||
|
||||
|
||||
function LogView:update()
|
||||
local item = core.log_items[#core.log_items]
|
||||
if self.last_item ~= item then
|
||||
self.last_item = item
|
||||
self.scroll.to.y = 0
|
||||
self.yoffset = -(style.font:get_height() + style.padding.y)
|
||||
end
|
||||
|
||||
self.scroll.to.y = math.max(0, self.scroll.to.y)
|
||||
self:move_towards("yoffset", 0)
|
||||
|
||||
LogView.super.update(self)
|
||||
end
|
||||
|
||||
|
||||
function LogView:draw()
|
||||
self:draw_background(style.background)
|
||||
|
||||
local ox, oy = self:get_content_offset()
|
||||
local th = style.font:get_height()
|
||||
local y = oy + style.padding.y + self.yoffset
|
||||
|
||||
for i = #core.log_items, 1, -1 do
|
||||
local x = ox + style.padding.x
|
||||
local item = core.log_items[i]
|
||||
local time = os.date(nil, item.time)
|
||||
x = renderer.draw_text(style.font, time, x, y, style.dim)
|
||||
x = x + style.padding.x
|
||||
local subx = x
|
||||
x = renderer.draw_text(style.font, item.text, x, y, style.text)
|
||||
x = renderer.draw_text(style.font, " in " .. item.view, x, y, style.dim)
|
||||
y = y + th
|
||||
if item.info then
|
||||
for line in item.info:gmatch("[^\n]+") do
|
||||
renderer.draw_text(style.font, line, subx, y, style.dim)
|
||||
y = y + th
|
||||
end
|
||||
end
|
||||
y = y + style.padding.y
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
return LogView
|
||||
Reference in New Issue
Block a user