|
SageTV Studio Discussion related to the SageTV Studio application produced by SageTV. Questions, issues, problems, suggestions, etc. relating to the Studio software application should be posted here. |
|
Thread Tools | Search this Thread | Display Modes |
#1
|
||||
|
||||
Navigation wrapping and scrolling tables
I'm trying to enable navigation wrapping for the new icon based main menu in teh latest SageMC release. The wrapping works fine either horizontally or vertically as long as there is no scrolling in that dimenion.
However, if the table scrolls vertically (for example), then when I reach the last row and press down it doesn't wrap to the top of the table anymore. It just jumps to the next logical focusable element on the screen. I hope that was clear. So my question is, am I missing something? Is this the intended behavior? And lastly, might there be a simple way to work around it? I started to try testing for the last row/column on the last vertical/horizontal page and then using SetFocusForVariable() to send focus to the proper cell to simulate wrapping. Unfortunately this became way too complicated very quickly. Also, I don't want to enable wrapping of the table, because if the last row is not full, then the cell locations get messed up as cells are shifted to fill in the blanks as the table wraps. Thanks for any help or insight you may be able to provide. Aloha, Mike |
#2
|
||||
|
||||
Several months ago, I was told "SageTV doesn't wrap navigation if you're inside a scrolling table that scrolls in the direction you're navigating."
There are probably a few things you could try... How about a Down listener on the panel above the table? If the table doesn't use the command, I think it will pass it up, so then you may know that is the point when you should set focus back to the first item. Why not use a wrapping table? You mentioned having cell locations get messed up if the last row is not full, so I think you are referring to 2-dimensional tables. Since you know the number of items in the table and the table's col x row size, just add a couple blank items to the list fed to the table to fill out the last row. Draw the blank items as empty panels w/o an item widget. Or, feed the items to the table in groups by row, so the entire row is the table's item; when that 'item' is drawn, it actually draws all the menu items in that group in order to build the row. Either way, the blank items might mess with focus (unless you make them focusable blanks), but it should wrap w/o throwing the items into new locations. That's all I can come up with at the moment. - Andy
__________________
SageTV Open Source v9 is available. - Read the SageTV FAQ. Older PDF User's Guides mostly still apply: SageTV V7.0 & SageTV Studio v7.1. - Hauppauge remote help: 1) Basics/Extending it 2) Replace it 3) Use it w/o needing focus - HD Extenders: A) FAQs B) URC MX-700 remote setup Note: This is a users' forum; see the Rules. For official tech support fill out a Support Request. |
#3
|
||||
|
||||
I may not be fully understanding what you're trying to accomplish, but couldn't you put an item next to your table so it becomes the next focusable item after the last row and have a FocusGained() hook revert focus back to the first table item with SetFocusForVariable()? It could be a completely themeless item widget so it doesn't draw - a kind of ghost widget.
|
#4
|
||||
|
||||
I got wrapping to work by placing left, right, up, and down listeners in the table cell that just call PassiveListen unless you are at a border of the table where navigation wrapping should occur. It then uses SetFocusForVariable to set the focus to the appropriate cell. This works fine except that the focus transition to the new cell is not animated in any way.
I would like to have the table scroll and/or the focused icon slide to the new location, but I don't know how to duplicate the automatic animation behavior using the animation API calls. Would this be something that is even possible? Thanks. Aloha, Mike |
#5
|
||||
|
||||
Quote:
- Andy
__________________
SageTV Open Source v9 is available. - Read the SageTV FAQ. Older PDF User's Guides mostly still apply: SageTV V7.0 & SageTV Studio v7.1. - Hauppauge remote help: 1) Basics/Extending it 2) Replace it 3) Use it w/o needing focus - HD Extenders: A) FAQs B) URC MX-700 remote setup Note: This is a users' forum; see the Rules. For official tech support fill out a Support Request. |
#6
|
||||
|
||||
Quote:
Yes, adding EnsureVisibilityForVariable() was the first thing I tried after seeing this issue. It behaves the same way. The table jumps to make the appropriate cell visible, but there is no animation. I'll contact SageTV as you suggest. Thanks again. Aloha, Mike |
#7
|
||||
|
||||
You might be able to use:
Code:
AnimateTransition("HighlightElement",TableCellDestination,"Focus","Smooth",150,0) |
#8
|
||||
|
||||
Quote:
BTW, I looked around and I couldn't find the API specification for AnimateTransition(). Do you know where I can find it? Aloha, Mike |
#9
|
||||
|
||||
I couldn't find it either. I figured it out via trial and error. It appears that it can visually transform a widget from one container to another if you pass the variables along to the target place then Refresh().
IE: ContainerA on the left side of the screen it's properties are defined by FooA. ContainerB is on the right side with it's properties defined by FooB. Code:
AnimateTransition("ContainerA","ContainerB","Foreground","Smooth",150,0) |->FooB=FooA |->FooA=null |->Refresh() I don't know if that helps, but it's how it appears to work in the example I emailed you. As far as available transition animation properties, some of the Animate() ones work, and some don't...trial and error appears to be in effect. |
#10
|
||||
|
||||
Quote:
Thanks for doing the leg work on this. It should come in very handy. Aloha, Mike |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
beta 11 - Scrolling Recordings now confusing | kmac | SageTV Beta Test Software | 5 | 01-31-2004 04:55 AM |