The Latest Version: What's New?


This page will cover the latest version of V. The current release is Version 1.22. See Installing V for installation instructions.

New Features - V Version 1.22

vPopupMenu

A new class to support Popup Menus has been added.

LessTif/Motif support

LessTif is now the main widget set supported for the X version. Athena support will continue at a reduced level.

VIDE enhancements

At the development of VIDE continues, minor features are being added to the V library. Mostly this has been bug fixes or feature additions to the vTextEdit class.

New Features - V Version 1.21

New User Guide

The V User Guide has been completely reformatted for HTML. The LaTeX version and its ugly converted HTML version have been abandoned. The new version uses style sheets, and has lots of hyperlinks to make it a truly great online manual.

Still HTML has limitations. One feature I want to add is the ability to put the reference for all classes on a single page so that it can easily be printed by the browser. Unfortunately, HTML does not have a universially supported mechanism similar to #include. So it goes.

vSList Class

The vSList class has been added to help make using lists for C_List objects easier. See vSList.

New MVC Support

A V user, Tyge Løvset, suggested some new methods for vApp and vWindow that make implementing MVC with V very easy. See vApp MVC.

OpenGL Library Separated

Because many Linux systems are configured without OpenGL or Mesa, the V OpenGL canvas has been moved to its own library. This is true for the MS-Windows version, too.

MS-Windows: MDI Empty Frame Support

A new method has been added to vApp to allow V apps to work like standard MDI apps when all command windows have been closed. See vApp::CloseLastCmdWindow.

MS-Windows: Transparent Icons

Support for transparent icons in MS-Windows has been added. See vIcon.

MS-Windows: Cygwin and mingw32 support improved

Support for the GNU Cygnus and mingw32 compilers has been improved.

MS-Windows: DLL for Borland C++

You can now build a V DLL with at least Borland C++. I haven't gotten MSVC++ or the gnu win32 compilers to do this yet. Contributions welcome!

MS-Windows: Windows 3.1 no longer officially supported

I don't know how many users this will affect, but it has become impossible for me to support Windows 3.1 any longer. I haven't tested V with Windows 3.1 since about V 1.16, so I don't even know if 1.21 does or does not work with Windows 3.1. If you need 3.1 support, your are welcome to try it. If you send a diff file, I will be happy to provide that to others, and incorporate the changes for the next release. However, I will be unable to continue to confirm 3.1 compliance.

VIDE Improved

The VIDE and the V AppGen utilites have been improved.

New Features - V Version 1.20

New Features for C_List

The number of rows displayed can now be controlled by using the CommandObject element size. By specifying the attribute CA_Size and providing a value for the size element, you can specify how many rows to show. If you don't specify a size, 8 rows will be displayed. Vwill support between 1 and 32 rows. Note the that the size element is the last one of a CommandObject, and can left out of a declaration, which results in the compiler generating a zero value, giving the default 8 rows.

The width in pixels (approximately) of the list can be controlled by specifying the CA_ListWidth attribute and providing a value to the retVal parameter, which is otherwise unused for a list object. This implementation isn't perfect - you may have to play with the interaction between the width you specify, and the font used in a list control.

Tool Tips

Support for Tool Tips was added in V Version 1.18. You can easily add Tool Tips by adding the appropriate text to your existing CommandObject definitions of tool bars and dialogs. The new definition of a CommandObject follows:

typedef struct CommandObject
  {
    CmdType cmdType;    // what kind of item is this
    ItemVal cmdId;      // unique id for the item
    ItemVal retVal;     // initial value of object
    char* title;        // string
    void* itemList;     // used when cmd needs a list
    CmdAttribute attrs; // list of attributes
    int Sensitive;      // if item is sensitive or not
    ItemVal cFrame;     // Frame used for an item
    ItemVal cRightOf;   // Item placed left of this id
    ItemVal cBelow;     // Item placed below this one
    int size;           // Used for size information
    char* tip;          // ToolTip string
  } CommandObject;

char* tip

The tip parameter is used to specify an optional ToolTip string for use with a command object. If you provide a string here, that string will be automatically displayed after the user holds the mouse over that control. The exact delay before the tip is shown, and the format of the tip box is somewhat platform dependent, and all platforms might not support tool tips. (Currently, only OS/2 does not support tips.) Note that if you use a tip, you must be sure to include a value (usually 0) for the size parameter!

void vBeep()

This utility routine will sound an audible beep.

void vGetcmdIdIndex(ItemVal cmdId, CommandObject *cmdObj)

Sometimes when you work with a CommandObject array to define a dialog, you need to access the elements of a particular item in the array. This is especially true for manipulating lists. This routine will return the index into a CommandObject array of an entry with the supplied ItemVal cmdId.


Release Notes - V Versions

Version 1.00
This version was local to the University of New Mexico on January 10, 1996. Versions 1.01, 1.02, and 1.03 were local maintenance releases.

Version 1.04
This was the first major public release of V, and was announced to the world on February 14, 1996.

Version 1.05
This version had several bug fixes obtained from feedback of the public release.

Version 1.06

This was an X only release, and added 3D controls.

Version 1.07

This release was never formally announced, and included some of the changes listed for version 1.07.

Version 1.08

The 4/15/96 release added several significant features to V:

Version 1.09
Added C_ToggleButton and C_ToggleFrame controls. It also includes a large number of Vicons suitable for building command pane tool bars.

Version 1.10
The 5/29/96 release of V includes the following enhancements and changes:

Version 1.11

The 7/4/96 release of V has several minor bug fixes for the MS-Windows and X versions. It also adds the WorkSlice methods to support applications that require computations to continue even if the user is not entering commands to the application.

Version 1.12

This was a bug fix release for MS-Windows. The X version was unchanged, but renumbered for consistency.

Version 1.13

This 8/24/1996 release of V is a major release with several new features, and some significant bug fixes that can change the behavior of existing Vapplications. The following includes a list of changes:

Version 1.14

The major addition to 10/6/96 VRelease 1.14 is the addition of the vTextEditor class, which is a very good first pass at a complete editing canvas. The editor is complete, can be extended to support custom command sets or file management. It is missing cut, copy, and paste, which will be implemented as general support for these is added to V. The code for vTextEditor is based on vTextCanvasPane, and is identical for the X and MS-Windows versions.

Also, for the X Version, support for OpenGL has been added. This support is found in the distribution directory v/vxgl. While the VOpenGL canvas pane seems very robust, it is still somewhat experimental. I would like any feedback on its use and design.

Other changes, mostly bug fixes, include:

Version 1.15

Release of V Version 1.15 has some non-backward compatible changes. In previous versions of V, there were inconsistencies in the order of width and height parameters. These have all been now changed to consistently use a width/height order. (Except for vIcon, which still use height/width.) The decision to fix this order came from a general consensus of the V mail list.

You will need to change your code to reflect the new changes. The following things must be changed:

1. Any calls to the constructor of a base or derived vCmdWindow will need the width and height order swapped.

2. Calls or overrides of vApp::NewAppWin need the order of width and height swapped.

3. Calls to vCanvasPane::SetHeightWidth(h,w) need to be changed to vCanvasPane::SetWidthHeight(w,h).

4. Calls or overrides of all versions of Redraw(x,y,h,w) need to be changed to Redraw(x,y,w,h).

5. Calls or overrides of all versions of Resize(h,w) need to be changed to Resize(w,h). (The vTextCanvas row/column versions retain their row/column order.)

Also, the makefiles have been revised for more flexible building on different *nix platforms.

A new method, vDialog::DialogDisplayed has been added to allow dynamic setting of dialog control values.

Version 1.16

Version 1.16 has no significant changes in V functionality. It mostly has some bug fixes. The only major change is the release of a completely new set of Makefiles for the Unix version. These new makefiles were contributed by a V user, and are much cleaner than the old versions.

A summary of the changes:

Version 1.17

Version 1.16 has proven to be remarkably stable. A few minor bugs have been reported and corrected for Version 1.17. Some enhancements have been added, the most significant allows you to specify the number of rows displayed in a list box.

A summary of the changes:

Version 1.18

Release 1.18 has a major enhancements to V. The main addition is support for Tool Tips - little boxes with text info that are automatically displayed when the user holds the mouse over a control. Tool Tip support is very trivial to add to your programs, and greatly enhances the user interface.

There are some minor enhancements, and a few bug fixes. Beginning with the 1.18 release, there will be a separate document that summarizes the changes for that version. This will simplify the upgrade path for past users.

Version 1.19

Release 1.19 has some minor enhancements, and a few bug fixes. The main enhancement is the addition of password support for text in controls. There have also been some improvements to vgen, especially for support for the mingw32 MS-Windows compiler. The support for the mingw32 compiler has been improved.

Version 1.20

Release 1.20 is has some major new features.

Future Plans