summaryrefslogtreecommitdiff
path: root/tslib.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tslib.lua')
-rw-r--r--tslib.lua43
1 files changed, 42 insertions, 1 deletions
diff --git a/tslib.lua b/tslib.lua
index 14196ad..1613586 100644
--- a/tslib.lua
+++ b/tslib.lua
@@ -14,6 +14,23 @@ local tslib = {
colorize = function(color,message)
return(string.char(0x1b).."(c@"..color..")"..message..string.char(0x1b).."(c@#FFFFFF)")
end,
+ explode_textlist_event = function(event)
+ local ret = {type = "INV"}
+ if string.sub(event,1,3) == "CHG" then
+ local index = tonumber(string.sub(event,5,-1))
+ if index then
+ ret.type = "CHG"
+ ret.index = index
+ end
+ elseif string.sub(event,1,3) == "DCL" then
+ local index = tonumber(string.sub(event,5,-1))
+ if index then
+ ret.type = "DCL"
+ ret.index = index
+ end
+ end
+ return ret
+ end,
_mt = {
setChannel = function(self,channel)
self._channel = channel
@@ -193,6 +210,31 @@ local tslib = {
}
table.insert(self._commands,cmd)
end,
+ addTextlist = function(self,x,y,w,h,name,choices,selected,transparent)
+ assert((type(x))=="number","Invalid X position")
+ assert((type(y))=="number","Invalid Y position")
+ assert((type(w))=="number","Invalid width")
+ assert((type(h))=="number","Invalid height")
+ if not selected then selected = 1 end
+ assert((type(selected))=="number","Invalid selection index")
+ if type(name) ~= "string" then
+ name = tostring(name)
+ end
+ assert((type(transparent)) == "boolean","Invalid transparent flag")
+ assert((type(choices) == "table" and #choices >= 1),"Invalid choices list")
+ local cmd = {
+ command = "addtextlist",
+ X = x,
+ Y = y,
+ W = w,
+ H = h,
+ name = name,
+ listelements = choices,
+ selected_id = selected,
+ transparent = transparent,
+ }
+ table.insert(self._commands,cmd)
+ end,
},
new = function(self,channel)
local ret = {}
@@ -204,4 +246,3 @@ local tslib = {
return ret
end,
}
-