building on this suggestion I'd like to see a more comfortable panel of the UI editor for editing label/value pairs, see below:
a long standing issue with the function GetGlobalMouseState is that it does not detect the <alt> key modifier (contrary to the documentation).
I'd like to suggest adding the capabilities to detect the key modifiers
Of course this can be done with the Win32 function GetKeyboardState, and this is how I do it right now, but this means that I have to include <windows.h>.
Improve the Breakpoints Window, so that breakpoints can be more easily managed.
1. Change the Breakpoints Window, from a modal dialog to a dockable window (similar to the Watch Window). Debugging can be more easy this way.
2. Allow breakpoints to be grouped, disabled/enabled and edited in user defined categories. This allows users to easily collectively manage several breakpoints at a time. It also helps the user to logically group breakpoints, depending on various issues issues that he might be working on.
3. Breakpoints could also be sorted from a pop-up menu by filename, line, hit count, etc.
It has been suggested much earlier here, but obviously passed out of mind:
When using 'Go to Definition' (CTrl+I) while in release configuration, CVI tells that no source code information was found for the identifier '...', because 'Browse information is not available in the Release configuration'... (still true for CVI2010)
This can and should be improved!
And it might be a good opportunity to also add the reverse process, 'Goto Declaration', suggested here
When writing a large amount of functions for CVI, I use the View>> Collapse All / Expand All options quit a lot. It would be incredibly useful to have a keyboard shortcut to do this.
That's all, but I can't stress how much I use these menu items and how incredibly helpful it would be to have a shortcut. All of my coworkers agree. Thanks.
If you have, say, three controls called MAX_1, MAX_2, MAX_3 arranged vertically. If I select them all, copy and paste, the new controls appear as MAX_4, MAX_5 and MAX_6 but in the wrong order to what you would expect.
A similar issue occurs with assigning a group of controls to a control array, they always seem to be in the wrong order, usually reversed.
I would like to have the possibility to store the uir-file not as a tui-file (old-fashioned ini file), instead as a xml file.
I am still happy that the tooltips have been moved from the Programmer's Toolbox to the UI editor.
Now when using them on a more regular basis it turns out that the programmer might grant the user the option to show / hide them. As a result, I would need to programmatically browse through all controls to change the respective parameter (the same is true for the delay time).
Hence I propose providing two new, more or less global attributes (these could possibly be panel attributes) that set the tooltip enable/disable status and the on/off delay times for all tooltips (on a panel).
This feature is not urgent as it can be implemented already now with some effort, but it might make code a bit shorter and simpler
The more 'urgent' tooltip requests are here...
imho the nice tool tips feature provided by the Programmer's Toolbox leads a miserable existence, because it is extra effort integrating it into a GUI.
I would love to see the tool tips integrated into the IDE, that is, when editing a control in the GUI editor, I would like to be able to also set the tool tips text and if it is initially enabled, just like it is possible to enter a control label text. This would include moving the tool tips from the Toolbox to the regular user interface library.
Even after using CVI for many years I still find the DirSelectPopup confusing, because it provides a file selector, displays files, and even allows to select files...
I would prefer an improved/modified function such that the DirSelectPopup only shows directories, does not provide a file selector, etc.... This should make it much more obvious that one is selecting a directory, not a file...
searching through the C code for specific controls first and foremost requires the knowledge of the control's name... If there are some hundred it may get difficult to remember and thus I typically have to check the UI for the constant name. Clicking on the control shows its name in the status bar, a welcome feature, but unfortunately I cannot directly use this text for searching...
What I suggest is allow copying this status bar field using CTRL+C; then it's possible to switch to the C code, press CTRL+F and CTRL+V... (The property browser is not really useful here because it only lists 'NUMERIC_7' and misses the associated panel)
Another, even more powerful feature would be to add a right click popup menu either to this status bar field ('Search C code for this constant') or to the control popup itself: Besides 'Generate control callback' etc. I'd like to see another entry 'Find control in C code'
This would make it a bit easier to edit an old project without the issue of upgraded UIRs because it might get loaded by the wrong CVI version and one edits and accidentally saves it before noticing.
Visual Studio installs a helper EXE which launches the right Studio for any SLN.
If MS didn't patent this , it would be a nice feature for CVI (and LabView?), too.
Currently, there is no way to access the historical data on a stripchart. The only way to manage this data is to maintain a separate buffer and update it whenever you add data to the strip chart, which is inefficient and tedious. Accessing data is possible for graph controls using the data attribute:
GetPlotAttribute (panel, PANEL_GRAPH, plotHandle, ATTR_PLOT_XDATA, &data);
Something similar should be implemented for the strip chart, either as an attribute in the getTraceAttribute function, or as a standalone function (getTraceData, etc.)
Similiar to LabVIEW, I would like to have a "save as" option to store all files within the prj-file to a new location (maybe also for store a cws, res all mentioned prj-files).
Would make it easier to handle over a CVI-project.
just a little idea for a minor improvement of the status bar: Right now, the coordinates of UI controls are displayed in different ways: in the popup window, the sequence is Top Left, while in the status bar the sequence is Left Top - this is somewhat irritating...
So I'd suggest to change the status bar text from
(23, 873) to something like
Top: 873 Left : 23
SetAnnotationAttribute permits you to pass -1 in AnnotationIndex parameter to apply the attribute to all annotations on the graph, while SetCursorAttribute does not. It would be good that this command too permits someway to operate on all cursors in a single pass.
As an example, when I want to print a graph on a black-and-white printer I prepare the control for this changing all elements to black.
I can use a single instruction for annotations:
SetAnnotationAttribute (panelHandle, PANEL_GRAPH, -1, ATTR_ANNOTATION_CAPTION_COLOR, VAL_BLACK);
On the other hand, I need to iterate on all elements for cursors
GetCtrlAttribute (panelHandle, PANEL_GRAPH, ATTR_NUM_CURSORS, &numCursors);
for (k = 1; k <= numCursors; k++) SetCursorAttribute (panelHandle, PANEL_GRAPH, k, ATTR_CURSOR_COLOR, VAL_BLACK);
sometimes it woud be useful to have plot symbols available that are larger than the fixed standard size. Hence I suggest providing a plot attribute ATTR_TRACE_POINT_SIZE where one could set the point size (e.g. in pixels)
In the process of developing a function one typically has to change the number (and type) of parameters. This has to be done both for the function and the function declaration. Hence I would consider it useful to have an option 'Goto Declaration'.
Right now the IDE provides the right click menu 'Goto Definition', so if I change the declaration it is easy to jump to the function and adjust it accordingly. It would be nice if the reverse process would also be possible...
There is an option to display the default display format for integers and floating point, but no such option to set the default format for
"String Display" or "Array display". Strangely, "Array display" shows my arrays as decimal numbers even though I have the default display format for integers set to Hex.
Ideally, I would like to be able to set them separately for char and unsigned char strings. For example:
char strings I prefer to display as Ascii, null-terminated strings (the current default).
Unsigned char strings I prefer to display in Hexadecimal, with Options==Display Entire buffer. This is because my unsigned char strings are actually arrays of bytes.
I've been using CVI for a long time and it's frustrating to setup these options each and every time I look at one of my unsigned char strings. Even if it can't be setup separately for signed/unsigned chars, I would like the option to set some sort of default.
Another aside, would it be possible to display the array/string as hex characters with the Ascii equivalent just below it? A dual display would be even nicer!
I don't know if it is possible technically but from a user's perspective it would be convenient for debugging a program (in debug configuration) if the UI constants could be provided in the data tooltips, too. Right now, if something is wrong with my UI I will have to do a lot of detective work to find out which control / control attribute is the problematic one...
Example: Consider the code
SetCtrlAttribute ( panel_handle, control_id, control_attribute, attribute_value );
Right now, if I hover over attribute_value, the tooltip will display something like "attribute_value = 24064". Then I will need to look up userint.h to find out which attribute value this is ( ATTR_CTRL_VAL ). It would be more convenient if the tooltip could include this information, too, and display something like "attribute_value = 24064 ( ATTR_CTRL_VAL )"
The same holds for control_id, because a number such as 14 will not immediately help me - I will have to go through the corresponding include file to find the respective UI control (e.g. TABPANEL_2_NUMERIC ).
Note: the LabWindows/CVI Idea Exchange is not the appropriate forum to submit technical support questions.
The LabWindows/CVI R&D team is committed to reviewing every idea submitted via the LabWindows/CVI Idea Exchange. However, we cannot guarantee the implementation of any LabWindows/CVI Idea Exchange submission.