This isn't fully functioning code, just an example which I haven't tested. You may need to do a little more to get the poster screen to update after setting the new content list, I'm not sure, but it would go something like this:
port = CreateObject("roMessagePort")
poster = CreateObject("roPosterScreen")
poster.SetMessagePort(port)
poster.SetContentList(list)
poster.SetFocusedListItem(0)
poster.Show()
LastIndex = 0
ListCount = list.Count() - 1
While True
msg = wait(0, port)
If msg.isScreenClosed() Then
return -1
ElseIf msg.isListItemFocused()
If msg.GetIndex = 0 And LastIndex = ListCount Then
poster.SetContentList(newlist)
poster.SetFocusedListItem(0)
ListCount = newlist.Count() - 1
LastIndex = 0
Else
LastIndex = msg.GetIndex()
End If
End If
End While
The real hack to do here is add a special list item at the very end of the list that says "Next" or something similar with a similar graphic, then just check to see if the msg.GetIndex() is equal to the list.Count() - 1 which means the user has set focus to the last list item and then load the new list content. That way it doesn't move back to the first list item before loading the next content list, and it appears more natural to the end user. The other thing might be to load the new content list when the user selects the last "Next" list item instead of just setting focus there (which could be a little jarring and unexpected), that would be more inline with how the rest of the Roku interface behaves.
*** Trevor Anderson - bloggingwordpress.com - moviemavericks.com ***