LabVIEW Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
PaulLotz

Edit...Set Tabbing Order should support reorder stacked controls

Status: Declined

Any idea that has received less than 7 kudos within 7 years after posting will be automatically declined.

As of LabVIEW 2010 when I select Edit...Set Tabbing Order from the menu of a VI LabVIEW makes all controls visible, which is necessary but not sufficient, since that doesn't necessarily make them accessible.

 

For instance, in our view VIs we frequently make buttons visible only in states when the user can click them.  For instance, in the image below the Start button is visible when the system is in StandbyState, but the GoToStandby button (behind it in the image) is visible instead once the system starts. 

 EditTabOrder.PNG

 

10 Comments
AristosQueue (NI)
NI Employee (retired)

Any ideas how we would support such a feature graphically? I think it's a reasonable request, but I don't have a good idea off the top of my head how to make it workable.

PaulLotz
Member

We tossed around a couple ideas:

1) Graphically: Show more than one number if there is more than one button.  There are indeed lots of chellenges with this approach, such as how to know which button is which, how to know when controls are stacked or not, how to keep this manageable if there are lots of controls.

2) Nongraphically: Have an option to order items via a list or table.  This would be much easier but would depart from the current paradigm.  It might be the way to go, though.

We'll think about this some more.

PaulLotz
Member

What about just having an option on a control to "move to back" or "show element behind" or something like that--i.e., change the z-order appearance temporarily for the Set Tabbing Order display only.  I think that could be workable.

Wart
Member

This would be a lot more work, but if you had an option to stack buttons then you could manage them like an enum or ring.  Right click and select edit tab order.  Or something similar.

TomOrr0W
Member

For the graphical method paul.dct suggested, you could place each tab number a minimum offset left and up from one another (top-left to bottom-right would be bottom to top in z-order) until an overlap with the bottom of a control that is not in the stack is found, then place to the left of bottom-left tab number (and then continue with same z-order pattern).  If overlaps occur such that adding a tab number to the bottom-left causes overlap, place the stack item tab number underneath or above the non-stack item tab number (underneath is shown in picture).  This process would have to be redone for each update, as updating any tab number causes all tab numbers' size to change.

 

To detect stacks, you could check the bounds of controls for overlap (this would only have to be done once per attempt to set tabbing order, when set tabbing order mode starts).

 

Also, I would have clicks to set the next item in tabbing order as follows:

Left-click sets tab order of control that was clicked (this would be the top control of an exact stack).

Right-click on a stack of one or more controls brings up context menu with labels for each control and a cancel option.

 

1 - when controls are exactly stacked, 2 - when offset would be the minimum (not exactly stacked), 3 - when overlap would occur with control that is not part of stack, 4 - when offset would be greater than the minimum, 5 - one method of handling overlap on the bottom-left tab number

Demo.jpg

Technico
Member

I would suggest some kind of hover-feature:

temporary show the control in front when placing the mouse over the index.

So you can see the control you're changing the index from, just before clicking.

GregSands
Active Participant

Is it true that only one of the stack is visible at any time?  I presume so.  If that's the case, then you essentially want all the controls to have the same tab order - because you can't do that (perhaps you should be able to), then they should have sequential orders, but it doesn't really matter which control has which of those.

 

One way to do that would be for Set Tab Order to allow a drag around (or across) N controls, which would assign the next N orders to those controls.

 

This doesn't help if you want your tab order to change depending on which of the controls is visible.

RavensFan
Knight of NI

This has me thinking.  Can you programmatically set the tab order?  If not, why not?  Is it something anyone would ever want to do?  I could see a possibility for acting on another VI has part of a scripting procedure to create a VI.  But would you ever want to change the tabbing order during runtime?

 

I couldn't find a property node or method, either normal or scripting, that relates to tab order.

DFGray
NI Employee (retired)

You can set the tab order programmatically, but not passively. You need to actively manage it. I wrote this up in a nugget awhile back. 

Darren
Proven Zealot
Status changed to: Declined

Any idea that has received less than 7 kudos within 7 years after posting will be automatically declined.