auto document variable in ui-document lua script

This commit is contained in:
MihailRis
2024-02-13 20:54:33 +03:00
parent 05589b721e
commit ef0d4d69e4
5 changed files with 58 additions and 27 deletions
-3
View File
@@ -1,6 +1,3 @@
local Document = require("core:document")
document = Document.new(DOC_NAME)
function on_open(invid)
print("OPEN", invid)
end
-22
View File
@@ -1,22 +0,0 @@
local Element = {}
function Element.new(docname, name)
return setmetatable({docname=docname, name=name}, {
__index=function(self, k)
return gui.getattr(self.docname, self.name, k)
end,
__newindex=function(self, k, v)
gui.setattr(self.docname, self.name, k, v)
end
})
end
local Document = {}
function Document.new(docname)
return setmetatable({name=docname}, {
__index=function(self, k)
return Element.new(self.name, k)
end
})
end
return Document
+24 -1
View File
@@ -110,4 +110,27 @@ end
color_mt = {}
function color_mt.__tostring(self)
return "rgba("..self[1]..", "..self[2]..", "..self[3]..", "..self[4]..")"
end
end
-- class designed for simple UI-nodes access via properties syntax
local Element = {}
function Element.new(docname, name)
return setmetatable({docname=docname, name=name}, {
__index=function(self, k)
return gui.getattr(self.docname, self.name, k)
end,
__newindex=function(self, k, v)
gui.setattr(self.docname, self.name, k, v)
end
})
end
-- the engine automatically creates an instance for every ui document (layout)
Document = {}
function Document.new(docname)
return setmetatable({name=docname}, {
__index=function(self, k)
return Element.new(self.name, k)
end
})
end