jf-roku/components/JFMessageDialog.brs
2020-03-03 18:53:44 -08:00

67 lines
1.7 KiB
Plaintext

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