kiosk settings

This commit is contained in:
kepler155c@gmail.com 2019-02-19 08:55:11 -05:00
parent c2ee88ba0e
commit da35988d50
2 changed files with 71 additions and 13 deletions

55
sys/apps/system/kiosk.lua Normal file
View File

@ -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

View File

@ -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