ExperimentalGear/scripts/components/pager/field.lua

63 lines
1.4 KiB
Lua
Raw Normal View History

---@class Field
---@field parent Page
---@field posX number
---@field posY number
local Field = {
drawCustomFooter = nil, ---@type function void()
handleButtonInput = nil, ---@type function void(integer number)
handleKnobInput = nil, ---@type function void(integer knob, number delta)
}
---Create a new Field instance
---@param o table
---@return Field
function Field:new(o)
self.__index = self -- self refers to Field, not the instance
o = o or {} -- o is the instance of Field
setmetatable(o, self)
--set instance members
o.parent = o.parent or nil
o.posX = o.posX or 0
o.posY = o.posY or 0
return o
end
function Field:render(deltaTime)
gfx.Save()
gfx.Translate(self.posX, self.posY)
gfx.BeginPath()
gfx.FillColor(255, 0, 128, 192)
gfx.StrokeColor(0, 0, 0)
gfx.StrokeWidth(2)
gfx.Rect(-50, -50, 100, 100)
gfx.Fill()
gfx.Stroke()
gfx.BeginPath()
gfx.MoveTo(-50, 0)
gfx.LineTo(50, 0)
gfx.MoveTo(0, -50)
gfx.LineTo(0, 50)
gfx.StrokeColor(0, 0, 0, 64)
gfx.StrokeWidth(2)
gfx.Stroke()
local fontSize = 18
local fontMargin = 4
gfx.BeginPath()
gfx.FontSize(fontSize)
gfx.LoadSkinFont("dfmarugoth.ttf")
gfx.FillColor(0, 0, 0)
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER | gfx.TEXT_ALIGN_MIDDLE)
gfx.Text("TEXTURE", 0, -fontSize / 2 - fontMargin)
gfx.Text("MISSING", 0, fontSize / 2 + fontMargin)
gfx.Restore()
end
return Field