next up gif contents
Next: V Class Hierarchy Up: V Reference Manual Previous: V Programming Tools

Release Notes

 

V is usually found in one of several archives: v-1.00.tar.gz, the full distribution of all current versions of V; vx-1.00.tar.gz, the X only distribution; and vwin100.zip, the MS-Windows only distribution. Note the version (1.00) will change as V is updated.

X Window System

 

The current X implementation of V uses the Athena widget set with some modified versions of some widgets from the Xaw3d widget set. A Motif port had been started, but with the current state of the 3D look of V , I've decided to postpone the Motif port. It is about three-fourths complete.

Directories

The V directory structure has been designed to allow you to either install V in a personal directory, or at a higher system level. By defining an appropriate search path in the Makefile, your applications can find the required V files.

You should download the standard distribution file vx-1.00.tar.gzgif, which is a gzip GNU Zipped tar file (or the full combined version, v-1.00.tar.gz). After you unzip the file (with gunzip, or the -z switch on some versions of tar), you can extract the file to wherever you want it. It will build a /v subdirectory from the directory containing the vx-1.00.tar file. The file hierarchy is:

/v
The main V directory.

/bccide
MS-Windows build files for Borland C++. (Not included in X only distribution.)

/bmp2vbm
Source for a simple MS-Windows and OS/2 .bmp bitmap format to .vbm V bit map format converter.

/v/bin
The /bin directory is used to hold the binaries of V sample programs. No binaries are included on the distribution, but at least the subdirectories /intel for Linux and /sun4 for Suns are included. There may be other subdirectories for other architectures.

/v/doc
The sources for V documentation. The documentation is in LaTeXformat. The standard distribution includes only the source LaTeXfiles. Other versions, including dvi and Postscript, are available from the V ftp site.

/v/draw
Source for the VDraw example program. Examples that are identical across platforms use a .cpp file extension.

/v/examp
Source for a simple V example.

/v/includex/v
Source for the X *.h V header files.

/v/includew/v
Source for the MS-Windows *.h V header files. (Not included on X only version.)

/v/lib
Compiled version of the V library will be placed under appropriate subdirectories here. No precompiled libraries are included in the standard distribution.

/v/obj
Compile object code is saved under here.

/v/srcx
The full C++ source for the X V library. The files use a .cxx extension.

/v/srcwin
The full C++ source for the Ms-Windows V library. The files use a .cxx extension. (Not on X only version.)

/v/test
The test program used to test V functionality.

/v/tutor
The source code for the tutorial example.

Compilers

The makefile provided with V uses the GNU C++ compiler, g++. V does not use templates or other C++ features that can cause portability problems. The current version has been built and tested using g++ Version 2.6.3, although it did work with Version 2.5.8 (which needs .cxx extensions, which means you have to change some file names from .cpp to .cxx), but not earlier versions. There is no inherent reason that V should not compile with other C++ compilers.

The X Makefile

 

The makefile is the main way to build X versions of V . It has comments that should help you to build the X version of V . See the file README.TXT for more instructions for installing V

on a *nix platform.

To date, V has successfully been compiled on several platforms, including Linux, SunOS, SGIs, and DEC Alphas. The standard distribution includes a makefile that can be easily configured for several platforms. The makefile requires GNU make! The secret is to examine the makefile and add and modify the definitions at the beginning as needed for your platform. (For Linux, this will usually be a no op, since Linux is the default configuration.) Examine the definitions already there, and then add a section with the locations defined as needed for your platform. Then use an ARCH= definition on the make line (or make your platform the default.)

X Resources

 

V makes limited used of X resources. The main use is to define the basic color schemes for controls and dialogs. The following resources are used:

vDialogBG
The color used for the background of dialogs and command bars.

vStatusBarBG
The color used for the background of the status bar.

vMenuBarBG
The background color of the menu bar and menu drop downs.

vControlBG
The background color for some controls, such as sliders and scroll bars.

vControlFace
The color used for the faces of various controls such as buttons.

vLightControlShadow
The color used for the light shadow on 3D controls.

vDarkControlShadow
The color used for the dark shadow on 3D controls.

By varying just the above X resources, you can really change the visual look of your V app. The /v/srcx directory contains several files of the form vRes* that contain various color schemes. The default color scheme is contained in vResDefault (but you don't need to load it -- it is the default). The file vResBlueMtf contains the color scheme similar to Motif. This is the contents of vResDefault:

*vDialogBG: gray75
*vStatusBarBG: gray80
*vMenuBarBG: gray70
*vControlBG: gray80
*vControlFace: gray70
*vLightControlShadow: gray87
*vDarkControlShadow: gray50

To use one of these, or your own, resource files, you can use the command xrdb -merge vResColorscheme. You can also add the lines to your .Xresources file.

The X program name is the name you supply to the vApp constructor.

X Bugs

The PostScript print driver does not draw shapes with hatched brushes.

The PostScript drawing canvas does not support CopyFromMemoryDC.

Source code uses two naming conventions - .cxx and .cpp. Gnu g++ version 2.6 and later support both file extensions. G++ version 2.5 doesn't like .cpp, so you might have to rename those files to .cxx,

Microsoft Windows

  

The current implementation of V for MS-Windows is for Windows 3.1 and WIN32. We will refer to this version as Vwin in this description. Eventually some native Windows 95 controls will be use, but for now the WIN32 version works fine for Win95. The Windows version of V is available at as t [vwin100.zip] (a MS-Windows Zip format file). on the V ftp site. You will need a version of ZIP or gunzip and tar to extract V . The MS-Windows version does not include documentation. Documentation is available as both LaTeXfiles in the X distribution, or split into a pair of Postscript or DVI files on the V ftp directory.

Directories

The directory structure of V under MS-Windows is similar to the X version. On the distribution, the MS-Windows hierarchy is found under the /v directory. (We will use Unix / notation for files instead of the usual MS-Windows backslash notation. Most MS-Windows compilers handle the / correctly, and / is used throughout the V source files.) When you unzip the archive, a subdirectory /v will be built.

Under /v are /bin/vwin for the example V MS-Windows binaries, /draw for the VDraw example program, /examp for a simple example program, /includew/v for the V \ .h header files, /lib/vwin for the MS-Windows compiled library, /obj/vwin for the object files, /srcwin for the MS-Windows version of the source code, /test for the test driver program, and /tutor for the source code to the tutorial included in this reference manual.

For MS-Windows, the V library source files use a .cpp extension. The example programs also use .cpp. The source for most of the example programs is identical for the MS-Windows and X versions! However, the source for the library .cpp and .h files are different for each platform, so you must be careful not to mix the X and MS-Windows versions of source code and header files.

Compilers

V has been successfully been compiled using Borland C++ 4.5 for Win3.1 and WIN32; Watcom 10.6 for Win3.1 and WIN32; and the GNU-WIN32 gnu g++ compiler. There have been reports of successful compiles using Microsoft VC++.

Several Borland .ide files are included on the directory /vwin/bccide. The .ide files assume V is built on drive C:, so you may have to modify it if you want to build V \ on your own system. If you are using another compiler, then you need to compile every .cpp file found on the /vwin/src directory.

Project files for compiling with Watcom C++ are included in the directory v/watcom. Unlike the Borland versions, the object code and libraries are built directly on these watcom directories.

MDI/SDI Models

 

V for MS-Windows supports both the MS-Windows MDI and SDI models. By default, V uses MDI, and will bring up the main MDI window, and open the first MDI child window. There currently is no way to have a main MDI window with no active MDI child windows -- when you exit the last window, the application closes. The menu, command bar, and status bars will change to the ones defined by each child window as each child window is activated.

V will automatically append a Window menu item to the main menu. The built in Window menu supports the standard cascade and tile MDI operations, as well as showing a list of MDI children.

  You can also get MS-Windows applications to look like the standard SDI model. If you want an SDI app, you control this in the static declaration of the vApp object:

  static testApp* tApp = new testApp("Vtest",1);

The second parameter controls MDI or SDI. A default parameter is defined by V as 0 to indicate the MDI model. If you specify a 1, then V will take an SDI look. It actually does this by using the MDI code, but maximizing the canvas window, removing the extra buttons from the menu bar, and not adding the Window menu. It is impossible for the user to tell that this is really an MDI application, but V does not strictly enforce this. If you create more than a single vCmdWindow object, unpredictable things will happen under the SDI simulation. It is up to you to not do that.

Since X doesn't have an MDI/SDI equivalent, it is harmless to specify SDI to an X version of your app.

Icons

As stated in the main part of this manual, V does not use resource files. This is true for the MS-Windows versions. However, there is one reason you might want to include a .RC file with a V MS-Windows application, and that is to allow you to define the icons used with the application. (These are MS-Windows icons, and are not the same things as vIcons.)

Typical MS-Windows MDI applications use two icons - one for when the whole application is iconized, and one when each child window is iconized. If you don't supply a .RC file, you will get the default MS-Windows icons. The V distribution supplies two default icons of its own, called vapp.ico and vwindow.ico. By including the definitions vAppIcon ICON vapp.ico and vWindowIcon ICON vwindow.ico in the .RC file, V will load and use those icons for the application and each child window respectively. You can substitute whatever two icons you want for your application by specifying different .ico files for the vAppIcon and vWindowIcon names in the .RC file.

DEF File

MS-Windows applications are typically compiled using a .DEF file. You can modify any of the .DEF files included with V sample programs.

Bugs on MS-Windows

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 V icons 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 V applications. The following includes a list of changes:

Version 1.14

The major addition to 10/6/96 V Release 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 V OpenGL 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.

Changes to previous version

In fact, the source and documentation of V 1.15 differs a great deal from V 1.14. The diff file between the two was nearly as big as the distribution, so the diff file was not included this time.

Future Plans



next up gif contents
Next: V Class Hierarchy Up: V Reference Manual Previous: V Programming Tools



Bruce Wampler
Thu Nov 14 09:25:45 MST 1996