LabWindows/CVI Idea Exchange

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea

Hello,

 

while editing operations on a panel can be undone this seems not possible for menus. For example, if I have changed the item name of a menu in the UI editor this can not be undone using CTRL-Z. I have to remember my last action and undo it myself.

 

Thanks.

Doing a CTRL+F and finding all instances of a word works, but is a lot of steps.  I tend to use Notepad++ a lot for my IDE and it has this really handy feature.  If you double-click a word, it will highlight that and all other instances of that word inside that one open file.  This is like a "quick find" that saves a lot of time.  See attached image to get the idea.  The darkest highlight is the one instance that was double-clicked.

I would like to suggest a function tree view in CVI.  I feel this is sorely missing.  Many times, I want to jump right to a function, but I don't remember where it is.  In a single C file with 1,000+ lines, this can be very aggravating.

 

For this reason, I tend to use Notepad++ for the heavy lifting, along with the Source Cookifier plugin.  See attached screenshot of that plugin.

 

There are options in the plugin to enable certain features, such as the global and local variables in addition to the function names.  When you are inside a function in the souce editor, the tree updates with a selection to show that you are inside that function.  This is very helpful with functions that have more lines than available veritcal screen space.  This way, I don't have to scroll up to see what function I'm looking at.  I simply look at the tree with a glance and I know.

Hello,

 

building on this suggestion of Bertrand I'd like to extend it as follows:

 

Please provide an opacity/transparency attribute not only for xy plots, but also for graph annotations (texts, glyphs), PlotLine, PlotRectangle, PlotText etc.

It would be nice if the "Editting Tab Order" window could change the order of dimmed controls like in previous versions of CVI.  Thanks.

The FileSelectPopup dialog in LabWindows/CVI does not allow the programmer to set attributes for the dialog, such as sort order for files in the dialog. 

 

Similar functionality already exists for other functions in CVI, such as SetPrintAttribute to set attributes for a file to be printed. It'd be extremely convenient to have a SetFileSelectAttribute with options such as VAL_SORT. 

 

It shouldn't be necessary to set these attributes to use the FileSelectPopup dialog; their use would simply change the settings from their default values.

 

Thanks,

 

Daniel E.

Applications Engineer

National Instruments

The problem with the CVI standard controls is that once a feature is missing, it's VERY difficult to add for a normal user. What cruel hacks I had to implement to circumvent some limitation (like dynamically overlaying canvas controls over a scrollable table to simulate joined cells) is truly beyond description. Same with graphs controls (try implementing some with five distinct Y axes, fun for the whole family!). I always found you guys to be pretty responsive when it comes to feature requests, but some features are a) so application specific that I don't even dare requesting them and b) even if you'd agree to implement them, it takes about two to three years until they are released and the necessary runtime is deployed worldwide in my company.


So, please consider opening the source code of some of the more complex UI controls (like the table and graph controls), at the very least to some interested users like me (AFAIK my company even has a standing NDA agreement with NI). I already considered doing them from scratch, but then I noticed that I'd even have to re-invent the scroll bars that come with them! This was never a problem with any other platform I had used in the past (like Delphi), because they always came with full source code to the whole library.

Hi,

 

following the discussion here it turns out that at present there is some ambiguity in using the taskbar button of applications created with CVI: Clicking on the taskbar button gives the visual impression of minimizing all panels of the application, in fact the panels are just hidden, not minimized. As a result, the application will behave differently if you really minimize panels using the _ panel button, or if you hide the panels by clicking on the taskbar. In the latter case the new EVENT_PANEL_MINIMIZE event does not get triggered and the application cannnot know that all panels are hidden (for the user appearing to be minimized). Hence this new event is required to complement this functionality.

In LabVIEW graphs there is a nice property called "Fill To" that can be used to get very cool features (see here, for example) to highlight different regions or data.

I think such a property should be introduced in CVI too, with the following options:

  • fill baseline: none, zero, +Inf, -Inf, plot #
  • fill color (with alpha channel too to achieve transparency effects)

 

 

How about...

 

- If control mode is indicator set ATTR_HILITE_CURRENT_ITEM to 0 per default

 

- Provide a code to set the background color of the whole line (from "here" on) instead of just where text is

This would make it far more easy to color alternating lines differently, now you have to append every text with lots of spaces to fake it if you use tabs

 

- Autoscroll option

Always jump to the last line if a new last one is inserted. Useful for logging purposes

 

Sometimes I want to complement standard UIR controls with custom graphics on my own. For instance an arrow linking two otherwise normal controls. One way to do those custom graphics is to draw them in a transparent canvas. But then if you place the canvas on top of the controls, it catches the clic events destined for the controls below.

 

There should be either:

- an attribute for the canvas (or maybe all controls) that basically says 'ignore me and pass the event to the control below me'

- a way for the canvas callback to say 'nope, this event is not for me, just pass it on to the control below me'

For God's sake please add a zoom function, the text and icons are so small that my eyes burn when looking at the block diagram window.

 

Or at least just a way to make icons/text bigger so it's easier to manage connections.

When working with large programs, especially those with involved user interfaces and the pernicious CallControlCallback or CallPanelCallback functions, it becomes very difficult to follow the program flow when trying to trace a program through all of the various levels of subroutines.

A tool for leaving breadcrumbs, in the order visited, could be very helpful. Right now I use the "breakpoints" as a sort of hyper-bookmark, since the breakpoint facility in LabWindows shows the line number and has the "go to breakpoint" capability in the dialog box. However, this is of limited utility since the dialog box sorts the breakpoints by line number and file, not in order of placement. The bookmark facility doesn't show line numbers nor does it have the goto capability.

 

What is needed is a way of showing the program flow, through routines, in the order visited, in a way similar to the "stack trace" window, except that it needs to be able to show multiple levels simultaneously. This could be done using the existing bookmark facility with the addition of a few items. 1) show file names and line numbers in the bookmark display; 2) allow them to be shown in the order that they were entered, not sorted by line number; 3) add the go-to capability so that I can jump to the location of any bookmark directly.

 

For instance, right now I'm trying to solve a memory problem. A dynamically allocated buffer is being de-allocated before being used, or at least when the error pops up the routine is trying to write to a NULL pointer. I've got to trace through from the starting point and try to understand where in the flow the buffer is being freed and why it's being freed before being written to. Since there are about a half-dozen levels of subroutines, trying to remember what the program flow is and where I'm coming from in trying to trace it can be difficult.

     

Hi,

 

I think it would be a nice tool to save a panel which is generated dynamically from a source code. If I have a database with many variables which I want to set on a panel as controls, I could write an import of this database, generate a panel automatically and could save this panel as UIR file. After this I could use this automatically generated UIR file in a project.

 

Greets

 

Thomas

If a panel is made part of a tab (InsertPanelAsTabPage) or if a panel handle is obtained from a tab (GetPanelHandleFromTabPage), there are some restrictions as to how you can use that panel. Some of those restrictions could be lifted if the panel knew which tab it belonged to.

 

I suggest the addition of the following (or similar) attributes:

GetPanelAttribute(Panel, ATTR_PANEL_PARENT_TAB_CTRL, &TabCtrl);

GetPanelAttribute(Panel, ATTR_PANEL_PARENT_TAB_INDEX, &TabIndex);

And of course you can already get the parent panel with:

GetPanelAttribute(Panel, ATTR_PANEL_PARENT, &ParentTab);

 

So, now that a panel knows the tab it belongs to, some obvious associations can be handled by the UIR library:

  • Calling DiscardPanel should, internally, call DeleteTabPage instead of the current undefined and illogical behavior
  • SetActivePanel should do a SetActiveTabPage instead of the current buggy behavior
  • SetPanelAttribute(.., ATTR_DIMMED) should do a SetTabPageAttribute(..., ATTR_DIMMED)
  • - etc...

This would allow the user to select at runtime if he wants a Multiple Panels application (MDI) or a Single Panel/Multiple Tab application (tabbed SDI) and almost no changes are necessary to the code.

With the batch built dialog, it is possible to select "all releases" and/or "all debugs". This button causes, that all 32-bit AND 64-bit releases and/or debugs are selected (marked). It would be helpful, if the selection buttons would be splitted in "select all 32-bit releases", "select all 64-bit releases", "select all 32-bit debugs" and "select all 64-bit debugs". When I develop e.g. 32-bit Software, I don't need the 64-bit versions.

 

It would be also helpful, if it is possible to select the sequence of the batch built. For example: project 1 depends on project 4, but project 4 is currently compiled after project 1 etc.

It seems to me that it would be really neat if CVI were able to support publishing/acceptance of XML data in the format required by LabVIEW UI Builder. The idea of LabVIEW UI Builder thin clients with a CVI server is quite appealing.

I have noticed that there are some tricks that can be played with Control and Panel callbacks that cannot be done with Menu callbacks.  More specifically, it would be handy at times to be able to chain menu callbacks, and to be able to programmically call menu callbacks given the menubar/menuitem ID.  Specifically I am looking for new library functions along the lines of CallMenuCallback(), ChainMenuCallback(), UnchainMenuCallback(), etc.

 

Thanks. 


Hello,

The idea is to automatically add the Auto-Complete function. that is, when you type the beginning of a function, the development interface  provides a set of functions. This option is present in most development software and facilitates the development too.

Thanks

Hello,

 

I would consider it useful to have an event for table controls notifying the program if the user has sorted a column, in analogy to the event EVENT_SORT available for tree controls.

 

Thanks Smiley Wink