PV-WAVE Foundation > Application Developer Guide > Using Wave Widgets > Methods of GUI Programming in PV-WAVE
Methods of GUI Programming in PV-WAVE
This section describes the GUI programming enviroment for PV-WAVE.
Wave Widgets and the Widget Toolbox
Wave Widgets is an easy-to-use set of PV-WAVE functions for creating Motif or Windows GUIs for PV-WAVE applications. Applications created with Wave Widgets are completely portable between Motif and Windows environments. Wave Widgets are designed for developers who require cross-platform GUI applications. See "Introduction to Wave Widgets" for more information.
The Widget Toolbox is a set of PV-WAVE functions that create Motif or Windows GUIs for PV-WAVE applications. The Widget Toolbox (Wt) functions call Motif or Windows GUI routines directly, and are designed primarily for developers who are already experienced with Motif or Windows GUI development. See Chapter 6: Using the Widget Toolbox, for detailed information on the Widget Toolbox functions.
Figure 5-1: Relationship between Wave Widgets and Motif Toolkit shows how Wave Widgets and the Widget Toolbox are layered on top of the Motif toolkit, Xt Intrinsics, Xlib, and the operating system.
 
Figure 5-1: Relationship between Wave Widgets and Motif Toolkit
Windows Advanced Controls Library
The Windows Advanced Controls Library (WAC) was developed to allow portability between Motif-based and Microsoft Windows applications. The WAC is built upon Windows GDI, Windows Controls, and ported subsets of X Windows and Xt Intrinsics. Above the WAC are Widget Toolbox and Wave Widgets functions, which are designed to be portable between Microsoft Windows and X Windows.
Figure 5-2: Windows Advanced Controls Library shows the general configuration of Wave Widgets, the Widget Toolbox, and the Windows Advanced Controls Library. The Windows Advanced Controls Library (WAC) relies on a ported subset of Xt Intrinsics and X Windows. This provides portability of the Wave Widgets and Widget Toolbox functions between Microsoft Windows and X Window based systems.
 
Figure 5-2: Windows Advanced Controls Library
Table 5-1: GUI Development Methods for PV‑WAVE lists advantages and disadvantages of all methods available to developers for creating GUI applications. Use this table to help determine which method is best for you.
 
GUI Development Methods for PV‑WAVE  
Method
Advantages
Disadvantages
Widget Toolbox
Creates Motif or Windows GUIs.
All programming done in PV-WAVE.
All Motif widget classes are supported.
Allows rapid prototyping.
Highly flexible.
No knowledge of C required.
Application developer must be experienced using the Motif widget toolkit.
Not portable between Motif and Microsoft Windows environments.
Wave Widgets
Easy to use.
Creates Motif or Microsoft Windows GUIs.
Completely portable between Motif and Microsoft Windows environments (no modification required).
All programming done in PV-WAVE.
No experience programming with the Motif widget toolkit required.
No knowledge of C required.
Users can create new and modified Wave Widgets functions.
Allows rapid prototyping.
Contains sufficient functionality for most GUI development projects.
Limited number of widget classes are supported.
Less overall flexibility in interface design.
VDA Tools
All programming done in PV‑WAVE.
Provides easy-to-call user interface components which can reduce overall programming time.
Multiple instances of a VDA Tool are instantiated from the same source code.
Provides code generation functions.
Easy to internationalize (via a string server).
Requires substantial PV‑WAVE programming experience to develop new VDA Tools not already provided.
Less overall flexibility in interface design (comparable to Wave Widgets).
Limited number of widget classes are supported (comparable to Wave Widgets).
C-based applications that call PV-WAVE
 
(The application interface can be developed in C, and, via PV-WAVE‘s interapplication communication functions, the C application can call PV-WAVE to perform data processing and display functions.)
Highly flexible.
Can be C code generated by any GUI builder.
Can be used to add Visual Data Analysis capability to an existing application.
Application developer must be experienced using the Motif or Windows widget toolkit.
Most complicated method of application development.
Knowledge of C required.
Knowledge of interapplication communication required.