LabWindows/CVI Idea Exchange

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

Hello,

 

this is a minor issue but still it can be very inconvenient... Very inconvenient because it almost always happens to me that if editing a menu bar I inadvertently mess it up. This is because if one is inserting a new item or child item, after pressing the 'Insert Item' or 'Insert Child Item' button the active control is set to 'Constant name', see below.

 

item name active control.png

 

 

But I am never editing the 'Constant name' but always the 'Item name' (and callback function, modifier key...). Hence I almost always start typing the item name until I realize that I was editing the wrong field.

 

So my suggestion is to consider changing the active control after one of the insert buttons has been pressed to 'Item name'.

It seems that one cannot cut/copy/paste menu items between multiple menubars.  If I copy an item in one menu bar, exit the 'Edit Menu Bar' dialog, then open the 'Edit Menu Bar' dialog for another menubar the paste buttons are dimmed.  It would handy at times to be able to do this.  Thanks.

Summary:

Hovering over the breakpoint diamond, a tooltip should display the breakpoint condition.

 

Description:

Useful breakpoint information, such as the breakpoint condition, line number or hit count could be displayed when hovering over the breakpoint diamond in the source editor. Otherwise, you would get this kind of information by looking at the breakpoint in the Breakpoints Window or the Edit Breakpoint Window.

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.

Summary:

Implement CVI Service API for creating and managing Windows Services (and Unix daemons).

 

Description:

Add specialized CVI functions that users can use for creating, installing and managing the entire life-cycle of long-running user services.

Users can thus have a more uniform interface to the system service API and benefit from a higher level of abstraction across multiple platforms (Windows vs. Unix). These services can contain user code for various tasks, that are running in the background.

Summary:

Improve the Breakpoints Window, so that breakpoints can be more easily managed.


Description:

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.

 

Breakpoints Window

Summary:

Display more struct member information during source editing and during debug.

 

Description:

While editing source code, CVI only displays the struct members, but no information regarding the type of the member (or declaration information, line file and line).

Add a tooltip to the right of the pop-up displaying the struct members in the source editor to display this information. Similar to this picture:

struct.jpg

Also add support for displaying nested structs and even display the member values while debugging, in form of a tree, when execution is suspended (CVI currently only displays the memory address of that struct variable).

 

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.

Hello,

 

I would consider it quite convenient having a simple CVI function, similar to GetPanelDisplayBitmap, providing a true screenshot image of a CVI panel.

 

As discussed here, the CVI function GetPanelDisplayBitmap does not provide a screenshot image of the panel, i.e. the bitmap lacks all OS-specific features (color theme etc.).

 

For backward compatibility reasons, NI should provide a new function, returning a bitmap that looks the same as if I would have pressed Alt+Prt Sc

 

 

Thanks!

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.

The active configuration (Debug, Release, custom ones, ...) is shown in the bottom-right corner of the status bar (see attached config01.jpg).

I think that it would be better if this would be a menu ring that can be used to change the active configuration, without having to select Build >> Configuration >> xxxx (see config02.jpg)

 

 

Download All

Somewhat similar to SetBreakOnLibraryError, I suggest the addition of a function that does a breakpoint when the specific attribute of a panel/control changes.
It could work like this:

SetBreakOnCtrlAttributeChange(panel, control, Attribute)

with also:

ClearBreakOnCtrlAttributeChange(panel, control, Attribute) // Use -1 to clear them all

SetBreakOnPanelAttributeChange(panel, Attribute),

ClearBreakOnPanelAttributeChange(panel, Attribute) // Use -1 to clear them all

 

Example of use:

SetBreakOnCtrlAttributeChange(panel, control, ATTR_CTRL_VAL)

SetBreakOnCtrlAttributeChange(panel, control, ATTR_VISIBLE)

Using SetTableCellRangeVals to update several thousands table cells is very effective.(better than using ATTR_CTRL_VAL)

I miss similar function for set atribute values in the same way. In example:i need  to set text to be bold or  set background color for each table cell separately.

Ithik that usability of SetTableCellRangeVals will be better if SetTableCellRangeAttributes will be avivaible because there will be the same program approach/logic for values and attributes,instead of mixing multiple cell vallue update and one by one cell attribute update.

 

I find it desirable to have the UI engine run, in debug mode and only optionally in release mode, a duplicate check on keyboard accelerators on controls (like labels or command buttons, as in __Quit being rendered as Quit and enabling the user to press [Alt]+[Q]). All too often, on bigger panels, when adding a feature, I find that a shortcut/accelerator is already assigned.

 

Note that the UI editor per se isn't sufficient while controls can be added programmatically.

Hi,

 

there has been the valuable suggestion of a "Picture and Text" button allowing more modern buttons.

 

For all those focusing on programming instead of UI design it would be also nice if CVI could provide more default buttons ready to use as some examples shown in the image below (taken from the NI community).

 

As they seem to be already available in LabVIEW it shouldn't be much effort for NI to adapt them to CVI... - hopefully Smiley Wink

 

 

buttons.jpg 

Hello,

 

I have a minor but well-hung suggestion: In case that one is changing the workspace to a different project while the Resource Tracking window is open, this Resource Tracking Window should be closed.

 

As discussed in some detail here the Resource Tracking Window should only show up if there is a memory leak - so after a new project is loaded CVI can't know if there is a memory leak, and hence it should not cause confusion by staying open 😉

When designing a new user interface it would be very helpful to have the ability to lock a control's position within a panel.  It is far to easy to inadvertently select and move a control that you have already spent time precisely positioning within a panel.

I'd really appreciate a warning for "empty bodies" or whatever it is called, i.e. things like

 

for(...);
while(...);
if(...);

 If written like

if(...) { };

 it is OK.

 

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...

 

Thanks!

Hi,

 

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)