Application Kit C++ Class Library

The ApplicationKit Class library consists of several C++ classes that provide a framework for development of applications with Graphical User Interfaces (GUI. The classes provide many top-level components for an application, aiming at setting a loose framework for all applications to fit into. The classes additionally provide many commonly used user-interface components for plugging into applications (including numerous different types of data prompts), as well as interface classes to UNIX processes, and audio.

ApplicationKit utilises, as far as is possible with current C++ compilers, the Standard Template Library (STL), and most other features of the (Draft) ANSI C++ standard. It uses Motif version 2.0 widgets.

Origin of Class Library

ApplicationKit was written initially to provide the user interface functionality for the mxNet, mxMail, and mxFTP applications. It was based around the code documented in the book by Doug Young "Object-Oriented Programming with C++ and OSF/Motif" 2nd Edition (1995). The basic framework classes (akComponent, akApp, akWindow) are basically as per the book (BUT with addition of bubble help, activation/deactivation, busy/ready) The classes that make up ApplicationKit have been developed purely on a requirement basis (i.e when something is required, the class is written to fit into ApplicationKit). Note that the code from the book has been developed to become the commercial class library known as ViewKit. A FREE clone of ViewKit is available from "The Hungry Programmers" at http://www.hungry.com/products/viewkit.

Requirements

The ApplicationKit class library requires the following :-

ApplicationKit Contents

The class library provides :-

  1. A main routine for the application, catering for the initialisation of X, and setting up of the event loop.
  2. A framework providing the application main windows, dialog windows as well as an abstract class from which to derive ALL GUI components.
  3. A dialog management facility providing easy generation of INFO, ERROR, WARNING, WORKING, MESSAGE, QUESTION, and FILE-SELECTION dialogs.
  4. A document viewing system for On-Line Program Help.
  5. A large range of data-entry prompts, ranging from data entry fields prompting for string/int/double data, to Option Menus, Combo Boxes and Radio Boxes.
  6. A system providing 'Bubble Help' for GUI component functionality.
  7. Several utilities, including a UNIX process interface, an audio file play interface, and a clock
All class library members are prefixed 'ak'.
The class library is made up of the following classes :-
ApplicationKit Framework Classes
ApplicationKit Dialog Classes

The dialog components are split into two parts - manually instantiated dialog components, and globally managed dialogs. The 'global' dialogs are created when the akApp is instantiated - so the programmer just has to call the dialog managers post member function to display the dialog.


ApplicationKit Document-Viewing Classes

These classes are used together to provide a basic (text-only) on-line help system from a 'reduced-set' HTML document.


ApplicationKit Prompting Classes

The constructor creates the components but DOES NOT manage them. Call the "manage" function to make the components visible.


ApplicationKit Command Classes

The constructor creates the components but DOES NOT manage them. Call the "manage" function to make the components visible.


ApplicationKit Utility Classes

Interface classes to commonly required facilities.

Future Work

The ApplicationKit class library requires the following work :-