Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
tmann
Level 7

Setting focus on Sliding Panels

I'm converting some old legacy channels to RSG.  I want to emulate the Roku player screen design by having a base labellist that feeds various types of panels on the right.  My first attempt is to create the postergrid and have focus pass to it.  

I have it partially working, it displays and you can right arrow to the grid and scroll around the grid.  Then you can left arrow back to the original labellist but things go awry at that point.  

After left arrowing back to the original labellist, if you try to right arrow over to the grid a second time, it slides and shows the grid on the left but the grid never gets focus. 

What am I missing or doing wrong?


Here is my code:

<component name = "MainMenu" extends = "OverhangPanelSetScene" >

<script type = "text/brightscript" >

    sub init()
m.top.id = "MainMenu"
m.top.backgroundURI = "pkg:/images/background.png"
m.top.overhang.color = "0x081874FF"
m.top.overhang.showOptions = true
m.top.overhang.optionsColor = "0x081874FF"
m.top.overhang.optionsAvailable = false
m.top.overhang.logoUri = "pkg:/images/overhang_logo.png"

devInfo = createObject("roDeviceInfo")
m.UIResolution = devInfo.getUIResolution()
m.scenesize = m.top.sceneBoundingRect()

m.MainMenuList = m.top.panelSet.createChild("MainMenuList")
m.MainMenuItem = m.top.panelSet.createChild("BrowseMoviesGrid")
m.MainMenuList.list.observeField("itemFocused", "ShowMenuItem")
m.MainMenuItem.observeField("focusedChild","SlideMenuItem")

m.MainMenuList.setFocus(true)

end sub


sub ShowMenuItem()

MenuItemContent = m.MainMenuList.list.content.getChild(m.MainMenuList.list.itemFocused)
m.MenuItemBox = createObject("RoSGNode","MenuItemBox")

end sub


sub SlideMenuItem()

if not m.top.panelSet.isGoingBack
  m.top.panelSet.appendChild(m.MenuItemBox)
  m.MainMenuItem.setFocus(true)
else
  m.MainMenuList.setFocus(true)
end if 

end sub
0 Kudos