sub init() options = m.top.findNode("optionList") options.focusBitmapBlendColor="0x0cb0e8" options.color="0xffffff" options.focusedColor="0xffffff" options.setFocus(true) end sub function onKeyEvent(key as string, press as boolean) as boolean if key = "back" m.top.backPressed = true return true end if return false end function sub updateOptions() for each item in m.top.options row = CreateObject("roSGNode", "ContentNode") row.title = item m.top.findNode("content").appendChild(row) end for m.top.findNode("optionList").numRows = m.top.options.count() redraw() end sub sub updateMessage() message = m.top.findNode("messageText") message.text = m.top.message redraw() end sub sub redraw() boxWidth = 900 border = 40 itemSpacing = 40 optionHeight = 60 bg = m.top.findNode("dialogBackground") text = m.top.findNode("messageText") options = m.top.findNode("optionList") fontHeight = m.top.fontHeight fontWidth = m.top.fontWidth if text.text.len() > 0 then textWidth = boxWidth - ( border * 2 ) text.width = textWidth text.numLines = int(fontWidth / textWidth) + 1 text.translation = [ border , border ] textHeight = (fontHeight * text.numLines) else textHeight = 0 itemSpacing = border end if options.translation = [ border * 2, textHeight + itemSpacing] options.itemSize = [ boxWidth - ( border * 4 ), optionHeight ] options.itemSpacing = "[0,20]" boxHeight = options.translation[1] + (options.itemSize[1] * options.numRows ) + (options.itemSpacing[1] * (options.NumRows - 1)) + border bg.width = boxWidth bg.height = boxHeight m.top.translation = [(1920 - boxWidth)/2 , (1080 - boxHeight)/2] end sub