Programming Reference: Appendix B. OpenDoc Shell Classes and Methods

# Programming Reference

# Appendix B. OpenDoc Shell Classes and Methods

This appendix describes the classes composing the OpenDoc shell. This information is separated from the main body of the Class Reference for these reasons.

- This information is not required by developers of parts but only those with a need to modify or enhance the shell's behavior.

- It provides a more useful presentation when grouped together, rather than scattered throughout the main body of the reference.

The OpenDoc shell is implemented as a class hierarchy in which shell behavior is abstracted into layers that provide differing amounts of control over the application environment.

- The OpenDoc Shell class provides only the minimum amount of functionality required to handle OpenDoc documents. This allows derived classes the most freedom in defining the shell's application environment.

- The Application Shell class, defines the application behavior and provides the platform-independent functionality of the shell application that is provided with OpenDoc.

- The platform-specific implementation of the shell. There is a class for each supported platform:
  - AIXShell
  - OS2Shell
  - WinShell

With three levels in the shell hierarchy, there are three scenarios for creating new shell applications. An application with substantially different behavior than the provided shell would likely need to be a new subclass of OpenDocShell, providing an alternative to ApplicationShell. An application with minor changes in behavior could be a subclass of the ApplicationShell or one of the platform shells, depending on how platform-dependent issues are addressed.

There is also an associated class, DocumentManager, that is not a part of the shell class hierarchy, but is used by the shell to manage individual documents. An object of the DocumentManager class manages an active OpenDoc document. It provides interfaces for creating, opening, saving, and closing documents.

[ Top | Previous | Next | Contents | Index | Documentation Homepage ]