Move xmlValue to xmlParser

This commit is contained in:
Sabine Lim
2023-05-16 19:44:15 +10:00
parent 32e2691eb7
commit 21e2e651a2
10 changed files with 55 additions and 62 deletions

View File

@@ -273,28 +273,6 @@ removeTags = removeTags,
wrapText = wrapText,
xmlValue = function(name, tab)
local var
if(type(tab)~="table")then return end
if(tab[name]~=nil)then
if(type(tab[name])=="table")then
if(tab[name].value~=nil)then
var = tab[name]:value()
end
end
end
if(var==nil)then var = tab["@"..name] end
if(var=="true")then
var = true
elseif(var=="false")then
var = false
elseif(tonumber(var)~=nil)then
var = tonumber(var)
end
return var
end,
convertRichText = convertRichText,
--- Writes text with special color tags

View File

@@ -55,6 +55,28 @@ end
local XMLParser = {}
function XMLParser.XmlValue(name, tab)
local var
if(type(tab)~="table")then return end
if(tab[name]~=nil)then
if(type(tab[name])=="table")then
if(tab[name].value~=nil)then
var = tab[name]:value()
end
end
end
if(var==nil)then var = tab["@"..name] end
if(var=="true")then
var = true
elseif(var=="false")then
var = false
elseif(tonumber(var)~=nil)then
var = tonumber(var)
end
return var
end
function XMLParser:ToXmlString(value)
value = string.gsub(value, "&", "&"); -- '&' -> "&"
value = string.gsub(value, "<", "&lt;"); -- '<' -> "&lt;"

View File

@@ -1,5 +1,4 @@
local utils = require("utils")
local xmlValue = utils.xmlValue
local XMLParser = require("xmlParser")
return {
VisualObject = function(base)
@@ -31,7 +30,7 @@ return {
setValuesByXMLData = function(self, data, scripts)
base.setValuesByXMLData(self, data, scripts)
if(xmlValue("background-symbol", data)~=nil)then self:setBackgroundSymbol(xmlValue("background-symbol", data), xmlValue("background-symbol-color", data)) end
if(XMLParser.XmlValue("background-symbol", data)~=nil)then self:setBackgroundSymbol(XMLParser.XmlValue("background-symbol", data), XMLParser.XmlValue("background-symbol-color", data)) end
return self
end,

View File

@@ -215,8 +215,7 @@ local lerp = {
easeInOutBounce=easeInOutBounce,
}
local utils = require("utils")
local xmlValue = utils.xmlValue
local XMLParser = require("xmlParser")
return {
VisualObject = function(base, basalt)
@@ -341,9 +340,9 @@ return {
setValuesByXMLData = function(self, data, scripts)
base.setValuesByXMLData(self, data, scripts)
local animX, animY, animateDuration, animeteTimeOffset, animateMode = xmlValue("animateX", data), xmlValue("animateY", data), xmlValue("animateDuration", data), xmlValue("animateTimeOffset", data), xmlValue("animateMode", data)
local animW, animH, animateDuration, animeteTimeOffset, animateMode = xmlValue("animateW", data), xmlValue("animateH", data), xmlValue("animateDuration", data), xmlValue("animateTimeOffset", data), xmlValue("animateMode", data)
local animXOffset, animYOffset, animateDuration, animeteTimeOffset, animateMode = xmlValue("animateXOffset", data), xmlValue("animateYOffset", data), xmlValue("animateDuration", data), xmlValue("animateTimeOffset", data), xmlValue("animateMode", data)
local animX, animY, animateDuration, animeteTimeOffset, animateMode = XMLParser.XmlValue("animateX", data), XMLParser.XmlValue("animateY", data), XMLParser.XmlValue("animateDuration", data), XMLParser.XmlValue("animateTimeOffset", data), XMLParser.XmlValue("animateMode", data)
local animW, animH, animateDuration, animeteTimeOffset, animateMode = XMLParser.XmlValue("animateW", data), XMLParser.XmlValue("animateH", data), XMLParser.XmlValue("animateDuration", data), XMLParser.XmlValue("animateTimeOffset", data), XMLParser.XmlValue("animateMode", data)
local animXOffset, animYOffset, animateDuration, animeteTimeOffset, animateMode = XMLParser.XmlValue("animateXOffset", data), XMLParser.XmlValue("animateYOffset", data), XMLParser.XmlValue("animateDuration", data), XMLParser.XmlValue("animateTimeOffset", data), XMLParser.XmlValue("animateMode", data)
if(animX~=nil and animY~=nil)then
self:animatePosition(animX, animY, animateDuration, animeteTimeOffset, animateMode)
end

View File

@@ -140,8 +140,7 @@ local function makeText(nSize, sString, nFC, nBC, bBlit)
end
-- The following code is related to basalt and has nothing to do with bigfonts, it creates a plugin which will be added to labels:
local utils = require("utils")
local xmlValue = utils.xmlValue
local XMLParser = require("xmlParser")
return {
Label = function(base)
local fontsize = 1
@@ -198,7 +197,7 @@ return {
setValuesByXMLData = function(self, data, scripts)
base.setValuesByXMLData(self, data, scripts)
if(xmlValue("fontSize", data)~=nil)then self:setFontSize(xmlValue("fontSize", data)) end
if(XMLParser.XmlValue("fontSize", data)~=nil)then self:setFontSize(XMLParser.XmlValue("fontSize", data)) end
return self
end,

View File

@@ -1,5 +1,4 @@
local utils = require("utils")
local xmlValue = utils.xmlValue
local XMLParser = require("xmlParser")
return {
VisualObject = function(base)
@@ -85,16 +84,16 @@ return {
setValuesByXMLData = function(self, data, scripts)
base.setValuesByXMLData(self, data)
local borders = {}
if(xmlValue("border", data)~=nil)then
borders["top"] = colors[xmlValue("border", data)]
borders["bottom"] = colors[xmlValue("border", data)]
borders["left"] = colors[xmlValue("border", data)]
borders["right"] = colors[xmlValue("border", data)]
if(XMLParser.XmlValue("border", data)~=nil)then
borders["top"] = colors[XMLParser.XmlValue("border", data)]
borders["bottom"] = colors[XMLParser.XmlValue("border", data)]
borders["left"] = colors[XMLParser.XmlValue("border", data)]
borders["right"] = colors[XMLParser.XmlValue("border", data)]
end
if(xmlValue("borderTop", data)~=nil)then borders["top"] = colors[xmlValue("borderTop", data)] end
if(xmlValue("borderBottom", data)~=nil)then borders["bottom"] = colors[xmlValue("borderBottom", data)] end
if(xmlValue("borderLeft", data)~=nil)then borders["left"] = colors[xmlValue("borderLeft", data)] end
if(xmlValue("borderRight", data)~=nil)then borders["right"] = colors[xmlValue("borderRight", data)] end
if(XMLParser.XmlValue("borderTop", data)~=nil)then borders["top"] = colors[XMLParser.XmlValue("borderTop", data)] end
if(XMLParser.XmlValue("borderBottom", data)~=nil)then borders["bottom"] = colors[XMLParser.XmlValue("borderBottom", data)] end
if(XMLParser.XmlValue("borderLeft", data)~=nil)then borders["left"] = colors[XMLParser.XmlValue("borderLeft", data)] end
if(XMLParser.XmlValue("borderRight", data)~=nil)then borders["right"] = colors[XMLParser.XmlValue("borderRight", data)] end
self:setBorder(borders["top"], borders["bottom"], borders["left"], borders["right"])
return self
end

View File

@@ -1,6 +1,5 @@
local utils = require("utils")
local count = utils.tableCount
local xmlValue = utils.xmlValue
return {
VisualObject = function(base, basalt)

View File

@@ -1,10 +1,9 @@
local XMLParser = require("xmlParser")
local utils = require("utils")
local uuid = utils.uuid
local xmlValue = utils.xmlValue
local function maybeExecuteScript(data, renderContext)
local script = xmlValue('script', data)
local script = XMLParser.XmlValue('script', data)
if (script ~= nil) then
load(script, nil, "t", renderContext.env)()
end
@@ -286,8 +285,8 @@ return {
if(data["rules"]["rule"].properties~=nil)then tab = {data["rules"]["rule"]} end
for k,v in pairs(tab)do
if(xmlValue("pattern", v)~=nil)then
self:addRule(xmlValue("pattern", v), colors[xmlValue("fg", v)], colors[xmlValue("bg", v)])
if(XMLParser.XmlValue("pattern", v)~=nil)then
self:addRule(XMLParser.XmlValue("pattern", v), colors[XMLParser.XmlValue("fg", v)], colors[XMLParser.XmlValue("bg", v)])
end
end
end
@@ -301,7 +300,7 @@ return {
Thread = function(base, basalt)
local object = {
setValuesByXMLData = function(self, data, renderContext)
local script = xmlValue("start", data)~=nil
local script = XMLParser.XmlValue("start", data)~=nil
if(script~=nil)then
local f = load(script, nil, "t", renderContext.env)
self:start(f)
@@ -334,7 +333,7 @@ return {
if(tab.properties~=nil)then tab = {tab} end
for _,v in pairs(tab)do
if(self:getType()~="Radio")then
self:addItem(xmlValue("text", v), colors[xmlValue("bg", v)], colors[xmlValue("fg", v)])
self:addItem(XMLParser.XmlValue("text", v), colors[XMLParser.XmlValue("bg", v)], colors[XMLParser.XmlValue("fg", v)])
end
end
end
@@ -362,7 +361,7 @@ return {
local tab = data["item"]
if(tab.properties~=nil)then tab = {tab} end
for _,v in pairs(tab)do
self:addItem(xmlValue("text", v), xmlValue("x", v), xmlValue("y", v), colors[xmlValue("bg", v)], colors[xmlValue("fg", v)])
self:addItem(XMLParser.XmlValue("text", v), XMLParser.XmlValue("x", v), XMLParser.XmlValue("y", v), colors[XMLParser.XmlValue("bg", v)], colors[XMLParser.XmlValue("fg", v)])
end
end
return self
@@ -379,7 +378,7 @@ return {
local tab = data["item"]
if(tab.properties~=nil)then tab = {tab} end
for _,_ in pairs(tab)do
self:addDataPoint(xmlValue("value"))
self:addDataPoint(XMLParser.XmlValue("value"))
end
end
return self
@@ -397,7 +396,7 @@ return {
local tab = data["node"]
if(tab.properties~=nil)then tab = {tab} end
for _,v in pairs(tab)do
local n = node:addNode(xmlValue("text", v), colors[xmlValue("bg", v)], colors[xmlValue("fg", v)])
local n = node:addNode(XMLParser.XmlValue("text", v), colors[XMLParser.XmlValue("bg", v)], colors[XMLParser.XmlValue("fg", v)])
addNode(n, v)
end
end
@@ -406,7 +405,7 @@ return {
local tab = data["node"]
if(tab.properties~=nil)then tab = {tab} end
for _,v in pairs(tab)do
local n = self:addNode(xmlValue("text", v), colors[xmlValue("bg", v)], colors[xmlValue("fg", v)])
local n = self:addNode(XMLParser.XmlValue("text", v), colors[XMLParser.XmlValue("bg", v)], colors[XMLParser.XmlValue("fg", v)])
addNode(n, v)
end
end

View File

@@ -1,5 +1,4 @@
local utils = require("utils")
local xmlValue = utils.xmlValue
local XMLParser = require("xmlParser")
return {
VisualObject = function(base)
@@ -33,7 +32,7 @@ return {
setValuesByXMLData = function(self, data, scripts)
base.setValuesByXMLData(self, data, scripts)
if(xmlValue("shadow", data)~=nil)then self:setShadow(xmlValue("shadow", data)) end
if(XMLParser.XmlValue("shadow", data)~=nil)then self:setShadow(XMLParser.XmlValue("shadow", data)) end
return self
end
}

View File

@@ -1,6 +1,6 @@
local images = require("images")
local utils = require("utils")
local xmlValue = utils.xmlValue
local XMLParser = require("xmlParser")
return {
VisualObject = function(base)
local textureId, infinitePlay = 1, true
@@ -111,9 +111,9 @@ return {
setValuesByXMLData = function(self, data, scripts)
base.setValuesByXMLData(self, data, scripts)
if(xmlValue("texture", data)~=nil)then self:addTexture(xmlValue("texture", data), xmlValue("animate", data)) end
if(xmlValue("textureMode", data)~=nil)then self:setTextureMode(xmlValue("textureMode", data)) end
if(xmlValue("infinitePlay", data)~=nil)then self:setInfinitePlay(xmlValue("infinitePlay", data)) end
if(XMLParser.XmlValue("texture", data)~=nil)then self:addTexture(XMLParser.XmlValue("texture", data), XMLParser.XmlValue("animate", data)) end
if(XMLParser.XmlValue("textureMode", data)~=nil)then self:setTextureMode(XMLParser.XmlValue("textureMode", data)) end
if(XMLParser.XmlValue("infinitePlay", data)~=nil)then self:setInfinitePlay(XMLParser.XmlValue("infinitePlay", data)) end
return self
end
}