From 181f21b70e2cdd7e5e3e63eb9349f820dbeec72e Mon Sep 17 00:00:00 2001 From: cheapie Date: Fri, 10 Apr 2020 06:15:49 -0500 Subject: Add textlist support --- tslib.lua | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'tslib.lua') 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, } - -- cgit v1.2.3