import "pkg:/source/utils/config.bs" sub init() m.top.itemComponentName = "ConfigItem" m.top.drawFocusFeedback = True m.top.vertFocusAnimationStyle = "floatingFocus" m.top.observeField("itemSelected", "onItemSelected") m.top.itemSize = [750, 75] m.top.itemSpacing = [0, 25] m.top.setfocus(true) end sub sub setData() items = m.top.configItems data = CreateObject("roSGNode", "ContentNode") data.appendChildren(items) m.top.content = data end sub sub onItemSelected() i = m.top.itemSelected itemField = m.top.content.getchild(i) configListShowDialog(itemField) end sub function onDialogButton() d = m.dialog button_text = d.buttons[d.buttonSelected] if button_text = tr("OK") m.configField.value = d.text dismiss_dialog() return true else if button_text = tr("Cancel") dismiss_dialog() return true end if return false end function sub configListShowDialog(configField) dialog = createObject("roSGNode", "StandardKeyboardDialog") m.configField = configField dialog.title = configField.label dialog.buttons = [tr("OK"), tr("Cancel")] m.greenPalette = createObject("roSGNode", "RSGPalette") m.greenPalette.colors = { DialogBackgroundColor: "#2A2B2A" } dialog.palette = m.greenPalette if configField.type = "password" dialog.textEditBox.secureMode = true end if if configField.value <> "" dialog.text = configField.value end if m.top.getscene().dialog = dialog m.dialog = dialog dialog.observeField("buttonSelected", "onDialogButton") end sub sub dismiss_dialog() m.dialog.close = true end sub