UI Interest Group Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

LV2012 - NewProject "Listbox"?

GregS wrote:

Wire_Warrior wrote:

Too bad.  It's a really cool interface.

I agree.  It's a bit of a sad indictment on the LabVIEW UI functionality if a simple listbox can't use the built-in UI if it wants to look good - and that's with NI programming it themselves.  Surely it would have been a similar amount of effort to code a new control, and then the whole community could benefit from it.

One could make the same comments about the 2012 Getting Started window - are this all a picture control too, or are there unreleased controls that have been developed for it?  Perhaps that could be made available too.

On the contrary Greg, I think it's commendable that NI demonstrate with effect what can be achieved with a little effort  that pushes the bounds of the LabVIEW User Interface experience. I admit it would be nice to see this control made public, but as Christina points out it is fairly complex and satisfies one very specific requirement, so it isn't going to be particularly helpful to most. Take encouragement from what you can see is achievable and get creative, NI can't do it all for us.

Thoric (CLA, CLED, CTD and LabVIEW Champion)


Message 11 of 20
(1,843 Views)

D60 wrote:

...the RSS field updates the entries by rolling up. Any idea of this behavior?

Here are a couple of ways of implementing this:

  1. Use a picture control and simply change the position of the text over time.
  2. Place a transparent string indicator inside a cluster (the cluster is the surrounding box) and control its position property over time.

Both will basically move the text up one pixel at a time.


___________________
Try to take over the world!
Message 12 of 20
(1,843 Views)

tst wrote:

D60 wrote:

...the RSS field updates the entries by rolling up. Any idea of this behavior?

Here are a couple of ways of implementing this:

  1. Use a picture control and simply change the position of the text over time.
  2. Place a transparent string indicator inside a cluster (the cluster is the surrounding box) and control its position property over time.

Both will basically move the text up one pixel at a time.

Sorry, I missed this question earlier. tst's #1 is how the Getting Started Window news ring is implemented.


Christina Rogers
Principal Product Owner, LabVIEW R&D
0 Kudos
Message 13 of 20
(1,843 Views)

Thank you so much all of you for your helpful posts!

---
+++ In God we believe, in Trance we Trust +++
[Hungary]
0 Kudos
Message 14 of 20
(1,843 Views)

Christina, I haven't looked at the actual behavior, but I'm assuming that the More Information texts are clickable links. What I'm interested in is how they're placed at the end of the text (the position of which is not something which is readily available). I can think of a number of ways of doing this, but it would be nice to hear about an actual implementation, since I haven't tried any of them myself.


___________________
Try to take over the world!
0 Kudos
Message 15 of 20
(1,843 Views)

The source code for the Create Project dialog is here: LabVIEW 2012\resource\dialog\NewProjectWizard

There are 9 password-protected VIs in there (out of 114 total) that contain private functionality.  The rest are open for perusal. In particular, the VI that is drawing the description text (which includes the clickable "More Information" link) is here: LabVIEW 2012\resource\dialog\NewProjectWizard\MetaDataObj\Draw Description.vi



You can see that we draw the text in a string control (to take advantage of its word wrapping abilities), then get an image of the string control for drawing in the listbox. We also use the Byte Offset from Point method to figure out whether or not the current mouse coordinates (passed in as the "DNL_Point" value) are hovering over a character in the "More Information" text.

I was not the original author of the Create Project dialog, but I am its current owner. Let me know if y'all have any further questions.

Message 16 of 20
(1,843 Views)

Well, I haven't really had LV open over the last few days, so inferring functionality from an image and implementation without an IDE could be tricky .

So I see the answer to my question is "they're placed at the end of the text by being part of the text", which was my initial guess. I admit that while noticing the BOFP method before, I never looked at it enough to see what it does (in general, so few controls have special methods, that I'm guessing even most advanced users don't know them well). I might have checked for it if I had to do something like this myself, but I can't be sure.

P.S. From experience, I can say that digging through a locked program can be quite hard if the top level VIs are the ones which are locked - it's like trying to assemble a complicated piece of furniture when all you have to go by is all the small pieces and a drawing of the completed piece on the box. The VI hierarchy window can help, but it still tends to be tedious.


___________________
Try to take over the world!
0 Kudos
Message 17 of 20
(1,843 Views)

tst wrote:

From experience, I can say that digging through a locked program can be quite hard if the top level VIs are the ones which are locked - it's like trying to assemble a complicated piece of furniture when all you have to go by is all the small pieces and a drawing of the completed piece on the box. The VI hierarchy window can help, but it still tends to be tedious.

I agree. I just browsed through the code and there are a few private properties/methods I could wrap up so that the top-level VIs are open for browsing. I filed myself CAR 372938 to remove as many of those passwords as possible in LabVIEW 2013.

Message 18 of 20
(1,843 Views)

I can't "like" this hard enough. I need a bigger button.

You are a champion of the LV product customer, Darren. I hope they let you work on all their usability and training features in 2013!

Message 19 of 20
(1,843 Views)

You can see a basic example of how a list of VIs in subpanels can work here (LV 2009).

Note that this was just a quick example to show the concept of VIs in subpanels. It does not do the selection or have a single style and other than the basic concept it is not how I would build this in a real app.

Also note that it uses the "enough subpanels" method (64 in the example), so it would require duplicating more to work with list of many elements or it would require faking the scrolling by having a limited number of subpanels and moving the VIs between them as the user scrolls.


___________________
Try to take over the world!
Message 20 of 20
(1,843 Views)