87 lines
4.2 KiB
Lua
87 lines
4.2 KiB
Lua
local XMLParser = require("xmlParser")
|
|
|
|
return {
|
|
VisualObject = function(base)
|
|
local inline = true
|
|
local borderColors = {top = false, bottom = false, left = false, right = false}
|
|
|
|
local object = {
|
|
setBorder = function(self, ...)
|
|
local t = {...}
|
|
if(t~=nil)then
|
|
for k,v in pairs(t)do
|
|
if(v=="left")or(#t==1)then
|
|
borderColors["left"] = t[1]
|
|
end
|
|
if(v=="top")or(#t==1)then
|
|
borderColors["top"] = t[1]
|
|
end
|
|
if(v=="right")or(#t==1)then
|
|
borderColors["right"] = t[1]
|
|
end
|
|
if(v=="bottom")or(#t==1)then
|
|
borderColors["bottom"] = t[1]
|
|
end
|
|
end
|
|
end
|
|
self:updateDraw()
|
|
return self
|
|
end,
|
|
|
|
draw = function(self)
|
|
base.draw(self)
|
|
self:addDraw("border", function()
|
|
local x, y = self:getPosition()
|
|
local w,h = self:getSize()
|
|
local bgCol = self:getBackground()
|
|
if(inline)then
|
|
if(borderColors["left"]~=false)then
|
|
self:addTextBox(1, 1, 1, h, "\149")
|
|
if(bgCol~=false)then self:addBackgroundBox(1, 1, 1, h, bgCol) end
|
|
self:addForegroundBox(1, 1, 1, h, borderColors["left"])
|
|
end
|
|
|
|
if(borderColors["top"]~=false)then
|
|
self:addTextBox(1, 1, w, 1, "\131")
|
|
if(bgCol~=false)then self:addBackgroundBox(1, 1, w, 1, bgCol) end
|
|
self:addForegroundBox(1, 1, w, 1, borderColors["top"])
|
|
end
|
|
|
|
if(borderColors["left"]~=false)and(borderColors["top"]~=false)then
|
|
self:addTextBox(1, 1, 1, 1, "\151")
|
|
if(bgCol~=false)then self:addBackgroundBox(1, 1, 1, 1, bgCol) end
|
|
self:addForegroundBox(1, 1, 1, 1, borderColors["left"])
|
|
end
|
|
if(borderColors["right"]~=false)then
|
|
self:addTextBox(w, 1, 1, h, "\149")
|
|
if(bgCol~=false)then self:addForegroundBox(w, 1, 1, h, bgCol) end
|
|
self:addBackgroundBox(w, 1, 1, h, borderColors["right"])
|
|
end
|
|
if(borderColors["bottom"]~=false)then
|
|
self:addTextBox(1, h, w, 1, "\143")
|
|
if(bgCol~=false)then self:addForegroundBox(1, h, w, 1, bgCol) end
|
|
self:addBackgroundBox(1, h, w, 1, borderColors["bottom"])
|
|
end
|
|
if(borderColors["top"]~=false)and(borderColors["right"]~=false)then
|
|
self:addTextBox(w, 1, 1, 1, "\148")
|
|
if(bgCol~=false)then self:addForegroundBox(w, 1, 1, 1, bgCol) end
|
|
self:addBackgroundBox(w, 1, 1, 1, borderColors["right"])
|
|
end
|
|
if(borderColors["right"]~=false)and(borderColors["bottom"]~=false)then
|
|
self:addTextBox(w, h, 1, 1, "\133")
|
|
if(bgCol~=false)then self:addForegroundBox(w, h, 1, 1, bgCol) end
|
|
self:addBackgroundBox(w, h, 1, 1, borderColors["right"])
|
|
end
|
|
if(borderColors["bottom"]~=false)and(borderColors["left"]~=false)then
|
|
self:addTextBox(1, h, 1, 1, "\138")
|
|
if(bgCol~=false)then self:addForegroundBox(0, h, 1, 1, bgCol) end
|
|
self:addBackgroundBox(1, h, 1, 1, borderColors["left"])
|
|
end
|
|
end
|
|
end)
|
|
end
|
|
}
|
|
|
|
return object
|
|
end
|
|
} |