From b5051e4e93d59b537034cc51e47ce79fb4356eb2 Mon Sep 17 00:00:00 2001 From: Sabine Lim Date: Tue, 16 May 2023 22:13:14 +1000 Subject: [PATCH] Remove all special uses of xmlValue --- Basalt/libraries/xmlParser.lua | 32 ----- Basalt/plugins/advancedBackground.lua | 10 +- Basalt/plugins/animations.lua | 19 +-- Basalt/plugins/bigfonts.lua | 8 +- Basalt/plugins/border.lua | 17 --- Basalt/plugins/reactive.lua | 184 ++------------------------ Basalt/plugins/shadow.lua | 6 - Basalt/plugins/textures.lua | 8 -- 8 files changed, 12 insertions(+), 272 deletions(-) diff --git a/Basalt/libraries/xmlParser.lua b/Basalt/libraries/xmlParser.lua index c1b5d1c..dde7575 100644 --- a/Basalt/libraries/xmlParser.lua +++ b/Basalt/libraries/xmlParser.lua @@ -7,16 +7,6 @@ local XMLNode = { children = {}, addChild = function(self, child) - if self[child.tag] ~= nil then - if type(self[child.tag].tag) == "function" then - local tempTable = {} - table.insert(tempTable, self[child.tag]) - self[child.tag] = tempTable - end - table.insert(self[child.tag], child) - else - self[child.tag] = child - end table.insert(self.children, child) end, @@ -39,28 +29,6 @@ local parseAttributes = function(node, s) end local XMLParser = { - xmlValue = function(tag, tab) - local var - if(type(tab)~="table")then return end - if(tab[tag]~=nil)then - if(type(tab[tag])=="table")then - if(tab[tag].value~=nil)then - var = tab[tag].value - end - end - end - if(var==nil)then var = tab["@"..tag] 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, - parseText = function(xmlText) local stack = {} local top = XMLNode.new() diff --git a/Basalt/plugins/advancedBackground.lua b/Basalt/plugins/advancedBackground.lua index c848e20..4c38f5a 100644 --- a/Basalt/plugins/advancedBackground.lua +++ b/Basalt/plugins/advancedBackground.lua @@ -28,12 +28,6 @@ return { return bgSymbolColor end, - setValuesByXMLData = function(self, node, scripts) - base.setValuesByXMLData(self, node, scripts) - if(XMLParser.xmlValue("background-symbol", node)~=nil)then self:setBackgroundSymbol(XMLParser.xmlValue("background-symbol", node), XMLParser.xmlValue("background-symbol-color", node)) end - return self - end, - draw = function(self) base.draw(self) self:addDraw("advanced-bg", function() @@ -44,8 +38,8 @@ return { self:addForegroundBox(1, 1, w, h, bgSymbolColor) end end - end, 2) - end, + end, 2) + end } return object diff --git a/Basalt/plugins/animations.lua b/Basalt/plugins/animations.lua index 7cb27cd..99fe8f0 100644 --- a/Basalt/plugins/animations.lua +++ b/Basalt/plugins/animations.lua @@ -336,24 +336,7 @@ return { end end end - end, - - setValuesByXMLData = function(self, node, scripts) - base.setValuesByXMLData(self, node, scripts) - local animX, animY, animateDuration, animeteTimeOffset, animateMode = XMLParser.xmlValue("animateX", node), XMLParser.xmlValue("animateY", node), XMLParser.xmlValue("animateDuration", node), XMLParser.xmlValue("animateTimeOffset", node), XMLParser.xmlValue("animateMode", node) - local animW, animH, animateDuration, animeteTimeOffset, animateMode = XMLParser.xmlValue("animateW", node), XMLParser.xmlValue("animateH", node), XMLParser.xmlValue("animateDuration", node), XMLParser.xmlValue("animateTimeOffset", node), XMLParser.xmlValue("animateMode", node) - local animXOffset, animYOffset, animateDuration, animeteTimeOffset, animateMode = XMLParser.xmlValue("animateXOffset", node), XMLParser.xmlValue("animateYOffset", node), XMLParser.xmlValue("animateDuration", node), XMLParser.xmlValue("animateTimeOffset", node), XMLParser.xmlValue("animateMode", node) - if(animX~=nil and animY~=nil)then - self:animatePosition(animX, animY, animateDuration, animeteTimeOffset, animateMode) - end - if(animW~=nil and animH~=nil)then - self:animateSize(animW, animH, animateDuration, animeteTimeOffset, animateMode) - end - if(animXOffset~=nil and animYOffset~=nil)then - self:animateOffset(animXOffset, animYOffset, animateDuration, animeteTimeOffset, animateMode) - end - return self - end, + end } return object diff --git a/Basalt/plugins/bigfonts.lua b/Basalt/plugins/bigfonts.lua index a9a9a68..2dd01bb 100644 --- a/Basalt/plugins/bigfonts.lua +++ b/Basalt/plugins/bigfonts.lua @@ -195,12 +195,6 @@ return { end end, - setValuesByXMLData = function(self, node, scripts) - base.setValuesByXMLData(self, node, scripts) - if(XMLParser.xmlValue("fontSize", node)~=nil)then self:setFontSize(XMLParser.xmlValue("fontSize", node)) end - return self - end, - draw = function(self) base.draw(self) self:addDraw("bigfonts", function() @@ -219,7 +213,7 @@ return { end end end) - end, + end } return object end diff --git a/Basalt/plugins/border.lua b/Basalt/plugins/border.lua index 7315fae..517cd86 100644 --- a/Basalt/plugins/border.lua +++ b/Basalt/plugins/border.lua @@ -79,23 +79,6 @@ return { end end end) - end, - - setValuesByXMLData = function(self, node, scripts) - base.setValuesByXMLData(self, node) - local borders = {} - if(XMLParser.xmlValue("border", node)~=nil)then - borders["top"] = colors[XMLParser.xmlValue("border", node)] - borders["bottom"] = colors[XMLParser.xmlValue("border", node)] - borders["left"] = colors[XMLParser.xmlValue("border", node)] - borders["right"] = colors[XMLParser.xmlValue("border", node)] - end - if(XMLParser.xmlValue("borderTop", node)~=nil)then borders["top"] = colors[XMLParser.xmlValue("borderTop", node)] end - if(XMLParser.xmlValue("borderBottom", node)~=nil)then borders["bottom"] = colors[XMLParser.xmlValue("borderBottom", node)] end - if(XMLParser.xmlValue("borderLeft", node)~=nil)then borders["left"] = colors[XMLParser.xmlValue("borderLeft", node)] end - if(XMLParser.xmlValue("borderRight", node)~=nil)then borders["right"] = colors[XMLParser.xmlValue("borderRight", node)] end - self:setBorder(borders["top"], borders["bottom"], borders["left"], borders["right"]) - return self end } diff --git a/Basalt/plugins/reactive.lua b/Basalt/plugins/reactive.lua index f3ded79..b9d1485 100644 --- a/Basalt/plugins/reactive.lua +++ b/Basalt/plugins/reactive.lua @@ -200,22 +200,21 @@ return { local _OBJECTS = basalt.getObjects() - for _, childNode in pairs(node.children) do - local tagName = childNode.tag - if (tagName ~= "animation") then + for _, child in pairs(node.children) do + local tagName = child.tag + if (tagName == "animation") then + addXMLObjectType(child, self.addAnimation, self, renderContext) + else local layout = renderContext.env[tagName] local objectKey = tagName:gsub("^%l", string.upper) if (layout ~= nil) then - insertChildLayout(self, layout, childNode, renderContext) + insertChildLayout(self, layout, child, renderContext) elseif (_OBJECTS[objectKey] ~= nil) then local addFn = self["add" .. objectKey] - addXMLObjectType(childNode, addFn, self, renderContext) + addXMLObjectType(child, addFn, self, renderContext) end end end - - addXMLObjectType(node["animation"], self.addAnimation, self, renderContext) - return self end, loadLayout = function(self, path, props) @@ -238,172 +237,5 @@ return { end, } return object - end, - - Textfield = function(base, basalt) - local object = { - setValuesByXMLData = function(self, node, renderContext) - base.setValuesByXMLData(self, node, renderContext) - if(node["lines"]~=nil)then - local l = node["lines"]["line"] - if(l.attributes~=nil)then l = {l} end - for _,v in pairs(l)do - self:addLine(v.value) - end - end - if(node["keywords"]~=nil)then - for k,v in pairs(node["keywords"])do - if(colors[k]~=nil)then - local entry = v - if(entry.attributes~=nil)then entry = {entry} end - local tab = {} - for a,b in pairs(entry)do - local keywordList = b["keyword"] - if(b["keyword"].attributes~=nil)then keywordList = {b["keyword"]} end - for c,d in pairs(keywordList)do - table.insert(tab, d.value) - end - end - self:addKeywords(colors[k], tab) - end - end - end - if(node["rules"]~=nil)then - if(node["rules"]["rule"]~=nil)then - local tab = node["rules"]["rule"] - if(node["rules"]["rule"].attributes~=nil)then tab = {node["rules"]["rule"]} end - for k,v in pairs(tab)do - - 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 - end - return self - end, - } - return object - end, - - Thread = function(base, basalt) - local object = { - setValuesByXMLData = function(self, node, renderContext) - local script = XMLParser.xmlValue("start", node)~=nil - if(script~=nil)then - local f = load(script, nil, "t", renderContext.env) - self:start(f) - end - return self - end, - } - return object - end, - - Timer = function(base, basalt) - local object = { - setValuesByXMLData = function(self, node, renderContext) - base.setValuesByXMLData(self, node, renderContext) - registerFunctionEvents(self, node, { - "onCall" - }, renderContext) - return self - end, - } - return object - end, - - List = function(base, basalt) - local object = { - setValuesByXMLData = function(self, node, renderContext) - base.setValuesByXMLData(self, node, renderContext) - if(node["item"]~=nil)then - local tab = node["item"] - if(tab.attributes~=nil)then tab = {tab} end - for _,v in pairs(tab)do - if(self:getType()~="Radio")then - self:addItem(XMLParser.xmlValue("text", v), colors[XMLParser.xmlValue("bg", v)], colors[XMLParser.xmlValue("fg", v)]) - end - end - end - return self - end, - } - return object - end, - - Dropdown = function(base, basalt) - local object = { - setValuesByXMLData = function(self, node, renderContext) - base.setValuesByXMLData(self, node, renderContext) - return self - end, - } - return object - end, - - Radio = function(base, basalt) - local object = { - setValuesByXMLData = function(self, node, renderContext) - base.setValuesByXMLData(self, node, renderContext) - if(node["item"]~=nil)then - local tab = node["item"] - if(tab.attributes~=nil)then tab = {tab} end - for _,v in pairs(tab)do - 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 - end, - } - return object - end, - - Graph = function(base, basalt) - local object = { - setValuesByXMLData = function(self, node, renderContext) - base.setValuesByXMLData(self, node, renderContext) - if(node["item"]~=nil)then - local tab = node["item"] - if(tab.attributes~=nil)then tab = {tab} end - for _,_ in pairs(tab)do - self:addDataPoint(XMLParser.xmlValue("value")) - end - end - return self - end, - } - return object - end, - - Treeview = function(base, basalt) - local object = { - setValuesByXMLData = function(self, node, renderContext) - base.setValuesByXMLData(self, node, renderContext) - local function addNode(node, node) - if(node["node"]~=nil)then - local tab = node["node"] - if(tab.attributes~=nil)then tab = {tab} end - for _,v in pairs(tab)do - local n = node:addNode(XMLParser.xmlValue("text", v), colors[XMLParser.xmlValue("bg", v)], colors[XMLParser.xmlValue("fg", v)]) - addNode(n, v) - end - end - end - if(node["node"]~=nil)then - local tab = node["node"] - if(tab.attributes~=nil)then tab = {tab} end - for _,v in pairs(tab)do - local n = self:addNode(XMLParser.xmlValue("text", v), colors[XMLParser.xmlValue("bg", v)], colors[XMLParser.xmlValue("fg", v)]) - addNode(n, v) - end - end - - - return self - end, - } - return object - end, - + end } diff --git a/Basalt/plugins/shadow.lua b/Basalt/plugins/shadow.lua index 9965893..d807f2d 100644 --- a/Basalt/plugins/shadow.lua +++ b/Basalt/plugins/shadow.lua @@ -28,12 +28,6 @@ return { end end end) - end, - - setValuesByXMLData = function(self, node, scripts) - base.setValuesByXMLData(self, node, scripts) - if(XMLParser.xmlValue("shadow", node)~=nil)then self:setShadow(XMLParser.xmlValue("shadow", node)) end - return self end } diff --git a/Basalt/plugins/textures.lua b/Basalt/plugins/textures.lua index 0a1f51a..2e7d953 100644 --- a/Basalt/plugins/textures.lua +++ b/Basalt/plugins/textures.lua @@ -107,14 +107,6 @@ return { end end, 1) self:setDrawState("texture-base", false) - end, - - setValuesByXMLData = function(self, node, scripts) - base.setValuesByXMLData(self, node, scripts) - if(XMLParser.xmlValue("texture", node)~=nil)then self:addTexture(XMLParser.xmlValue("texture", node), XMLParser.xmlValue("animate", node)) end - if(XMLParser.xmlValue("textureMode", node)~=nil)then self:setTextureMode(XMLParser.xmlValue("textureMode", node)) end - if(XMLParser.xmlValue("infinitePlay", node)~=nil)then self:setInfinitePlay(XMLParser.xmlValue("infinitePlay", node)) end - return self end }