From 2392ba792caf81970e0e2ec77b9dead46886ed32 Mon Sep 17 00:00:00 2001 From: cheapie Date: Wed, 19 Apr 2017 21:37:23 -0500 Subject: Import existing content --- tslib.lua | 207 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 207 insertions(+) create mode 100644 tslib.lua (limited to 'tslib.lua') diff --git a/tslib.lua b/tslib.lua new file mode 100644 index 0000000..14196ad --- /dev/null +++ b/tslib.lua @@ -0,0 +1,207 @@ +--TSLib +--A product of Advanced Mesecons Devices, a Cheapie Systems company +--This is free and unencumbered software released into the public domain. +--See http://unlicense.org/ for more information + +--Since LuaCs can't dynamically link libraries, +--you will have to "statically link" it by pasting this file +--above the code that will use it. + +local tslib = { + getColorEscapeSequence = function(color) + return(string.char(0x1b).."(c@"..color..")") + end, + colorize = function(color,message) + return(string.char(0x1b).."(c@"..color..")"..message..string.char(0x1b).."(c@#FFFFFF)") + end, + _mt = { + setChannel = function(self,channel) + self._channel = channel + end, + getChannel = function(self) + return(self._channel) + end, + draw = function(self) + digiline_send(self._channel,self._commands) + end, + clear = function(self) + self._commands = {{command="clear"}} + end, + setLock = function(self,lock) + if lock then + table.insert(self._commands,{command="lock"}) + else + table.insert(self._commands,{command="unlock"}) + end + end, + addLabel = function(self,x,y,label,vertical) + assert((type(x))=="number","Invalid X position") + assert((type(y))=="number","Invalid Y position") + if type(label) ~= "string" then + label = tostring(label) + end + local cmd = { + command = "addlabel", + X = x, + Y = y, + label = label, + } + if vertical then cmd.command = "addvertlabel" end + table.insert(self._commands,cmd) + end, + addImage = function(self,x,y,w,h,tex) + 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 type(tex) ~= "string" then + tex = tostring(tex) + end + local cmd = { + command = "addimage", + X = x, + Y = y, + W = w, + H = h, + texture_name = tex, + } + table.insert(self._commands,cmd) + end, + addButton = function(self,x,y,w,h,name,label,exit) + 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 type(name) ~= "string" then + name = tostring(name) + end + if type(label) ~= "string" then + label = tostring(label) + end + local cmd = { + command = "addbutton", + X = x, + Y = y, + W = w, + H = h, + name = name, + label = label, + } + if exit then cmd.command = "addbutton_exit" end + table.insert(self._commands,cmd) + end, + addImageButton = function(self,x,y,w,h,name,label,tex,exit) + 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 type(name) ~= "string" then + name = tostring(name) + end + if type(label) ~= "string" then + label = tostring(label) + end + if type(tex) ~= "string" then + tex = tostring(tex) + end + local cmd = { + command = "addimage_button", + X = x, + Y = y, + W = w, + H = h, + name = name, + label = label, + image = tex, + } + if exit then cmd.command = "addimage_button_exit" end + table.insert(self._commands,cmd) + end, + addField = function(self,x,y,w,h,name,label,default,password) + 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 type(name) ~= "string" then + name = tostring(name) + end + if type(label) ~= "string" then + label = tostring(label) + end + if type(default) ~= "string" then + default = tostring(default) + end + local cmd = { + command = "addfield", + X = x, + Y = y, + W = w, + H = h, + name = name, + label = label, + default = default, + } + if password then cmd.command = "addpwdfield" end + table.insert(self._commands,cmd) + end, + addTextArea = function(self,x,y,w,h,name,label,default) + 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 type(name) ~= "string" then + name = tostring(name) + end + if type(label) ~= "string" then + label = tostring(label) + end + if type(default) ~= "string" then + default = tostring(default) + end + local cmd = { + command = "addtextarea", + X = x, + Y = y, + W = w, + H = h, + name = name, + label = label, + default = default, + } + table.insert(self._commands,cmd) + end, + addDropdown = function(self,x,y,w,h,name,choices,selected) + 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(choices) == "table" and #choices >= 1),"Invalid choices list") + local cmd = { + command = "adddropdown", + X = x, + Y = y, + W = w, + H = h, + name = name, + choices = choices, + selected_id = selected, + } + table.insert(self._commands,cmd) + end, + }, + new = function(self,channel) + local ret = {} + for k,v in pairs(self._mt) do + ret[k] = v + end + ret._channel = channel + ret._commands = {{command="clear"}} + return ret + end, +} + -- cgit v1.2.3