rowFocused = itemFocused \ numColumns
columnFocused = itemFocused MOD numColumns
"Veeta" wrote:
Just had a look at the docs and it seemed like something was missing so i tried it out with the SceneGraphXMLTutorial code.
Markupgrid is different from, say, RowList in that it doesn't map 2D data and give 2D indices into that data. Rather, it takes a linear list of data and it just lays out that linear list on screen by wrapping based on the value of numColumns.
So your row and column would berowFocused = itemFocused \ numColumns
columnFocused = itemFocused MOD numColumns
If you use the sections dividers, i don't have an answer there. You'd have to account for empty places in the grid as you encountered each section divider. In that case I would personally use a different component such as RowList.
contentIndex = []
for s = 0 to m.top.content.getChildCount() - 1
for i = 0 to m.top.content.getChild(t).getChildCount() - 1
contentIndex.Push([s,i])
next
next
m.top.contentIndex = contentIndex
index = m.top.contentIndex[itemFocused]
focusedContent = m.top.content.getChild(index[0]).getChild(index[1])
"marcelo.cabral" wrote:
I had a similar issue with MarkupGrid that only returns the index on itemFocused property, even when you have multiple sections.
My solution was to create an index array to easily access later the [section, index].contentIndex = []
for s = 0 to m.top.content.getChildCount() - 1
for i = 0 to m.top.content.getChild(t).getChildCount() - 1
contentIndex.Push([s,i])
next
next
m.top.contentIndex = contentIndex
Then on the event to get the focus you just use this way:index = m.top.contentIndex[itemFocused]
focusedContent = m.top.content.getChild(index[0]).getChild(index[1])