From da35988d5073312924fdabbcc50126a0941999ab Mon Sep 17 00:00:00 2001 From: "kepler155c@gmail.com" Date: Tue, 19 Feb 2019 08:55:11 -0500 Subject: [PATCH] kiosk settings --- sys/apps/system/kiosk.lua | 55 ++++++++++++++++++++++++++++++++++++ sys/apps/system/settings.lua | 29 ++++++++++--------- 2 files changed, 71 insertions(+), 13 deletions(-) create mode 100644 sys/apps/system/kiosk.lua diff --git a/sys/apps/system/kiosk.lua b/sys/apps/system/kiosk.lua new file mode 100644 index 0000000..aac7954 --- /dev/null +++ b/sys/apps/system/kiosk.lua @@ -0,0 +1,55 @@ +local UI = require('ui') + +local device = _G.device +local peripheral = _G.peripheral +local settings = _G.settings + +local tab = UI.Tab { + tabTitle = 'Kiosk', + description = 'Kiosk options', + form = UI.Form { + x = 2, + manualControls = true, + monitor = UI.Chooser { + formLabel = 'Monitor', formKey = 'monitor', + }, + textScale = UI.Chooser { + formLabel = 'Font Size', formKey = 'textScale', + nochoice = 'Small', + choices = { + { name = 'Small', value = '.5' }, + { name = 'Large', value = '1' }, + }, + help = 'Adjust text scaling', + }, + }, +} + +function tab:enable() + local choices = { } + + for k,v in pairs(device) do + if v.type == 'monitor' then + table.insert(choices, { name = k, value = v.name }) + end + end + + self.form.monitor.choices = choices + self.form.monitor.value = settings.get('kiosk.monitor') + + self.form.textScale.value = settings.get('kiosk.textscale') + + UI.Tab.enable(self) +end + +function tab:eventHandler(event) + if event.type == 'choice_change' then + settings.set('kiosk.monitor', self.form.monitor.value) + settings.set('kiosk.textscale', self.form.textScale.value) + settings.save('.settings') + end +end + +if peripheral.find('monitor') then + return tab +end diff --git a/sys/apps/system/settings.lua b/sys/apps/system/settings.lua index dc919ff..f5d35db 100644 --- a/sys/apps/system/settings.lua +++ b/sys/apps/system/settings.lua @@ -3,24 +3,11 @@ local UI = require('ui') local settings = _G.settings if settings then - local values = { } - for _,v in pairs(settings.getNames()) do - local value = settings.get(v) - if not value then - value = false - end - table.insert(values, { - name = v, - value = value, - }) - end - local settingsTab = UI.Tab { tabTitle = 'Settings', description = 'Computercraft configurable settings', grid = UI.Grid { y = 2, - values = values, autospace = true, sortColumn = 'name', columns = { @@ -30,6 +17,22 @@ if settings then }, } + function settingsTab:enable() + local values = { } + for _,v in pairs(settings.getNames()) do + local value = settings.get(v) + if not value then + value = false + end + table.insert(values, { + name = v, + value = value, + }) + end + self.grid:setValues(values) + UI.Tab.enable(self) + end + function settingsTab:eventHandler(event) if event.type == 'grid_select' then if not event.selected.value or type(event.selected.value) == 'boolean' then