You can think of ViewKit ObjectPak as consisting of several sets of classes: framework classes, interface components, network licensing, interapplication communication, and convenience utilities. The following sections discuss these groups.
ViewKit ObjectPak provides a small set of classes that are either essential for all applications or provide fundamental support for all other classes. The most basic of these classes is the VkComponent class, which defines the basic structure of all user interface components. All user interface classes are derived from VkComponent.
The framework classes also include support for features needed by nearly all applications, including application management and X server setup, top-level windows, menus, and dialog management. All classes are designed to implement as many typical features as possible. For example: all top-level windows and dialogs handle the window manager quit/close protocol; dialogs are cached to balance memory use and display speed; the menu system goes beyond simply constructing menus to support dynamically adding, removing, replacing items, and more.
The classes that make up the framework of ViewKit ObjectPak are closely integrated and work together to support essential features required by most applications as automatically as possible. Among the basic services supported by the core ViewKit ObjectPak framework are: single and multi-level undo; interruptible tasks; and an application-level callback mechanism that allows C++ classes to dynamically register member functions to be invoked by other C++ classes.
In addition to the basic user interface support provided by the core framework classes, ViewKit provides an assortment of ready-to-use interface components. Examples of these components are a graph viewer/editor, an input field that supports name expansion, and an outliner component for displaying and manipulating hierarchical information.
Use the architecture of ViewKit ObjectPak to create new components and extend existing components. Creating reusable, high-level components promotes consistency throughout a set of applications by providing elements that users can learn once and then easily recognize in multiple applications.
Many applications need to be able to communicate with other applications to work effectively. ViewKit ObjectPak builds on the ToolTalkTM interapplication communications service to support simple and effective interapplication communication.
ViewKit ObjectPak provides various utility functions and classes for your convenience. These utilities include simple functions that make it easier to load resources (including automatic type conversion), classes that support the use of icons, and other miscellaneous utilities.