jf-roku/components/ButtonGroupVert.bs
2023-10-25 22:39:27 -04:00

45 lines
1.1 KiB
Plaintext

sub init()
m.top.layoutDirection = "vert"
m.top.observeField("focusedChild", "onFocusChanged")
m.top.observeField("focusButton", "onFocusButtonChanged")
end sub
sub onFocusChanged()
if m.top.hasFocus()
m.top.getChild(0).setFocus(true)
m.top.focusButton = 0
end if
end sub
sub onFocusButtonChanged()
m.top.getChild(m.top.focusButton).setFocus(true)
end sub
function onKeyEvent(key as string, press as boolean) as boolean
if key = "OK"
m.top.selected = m.top.focusButton
return true
end if
if not press then return false
if key = "down"
i = m.top.focusButton
target = i + 1
if target >= m.top.getChildCount() then return false
m.top.focusButton = target
return true
else if key = "up"
i = m.top.focusButton
target = i - 1
if target < 0 then return false
m.top.focusButton = target
return true
else if key = "left" or key = "right"
m.top.escape = key
return true
end if
return false
end function