ImagePortfolio
written by Martin D. Flynn

Technical Documentation: The Application Classes
The source header files for each of the following classes contain more detailed information.  All of the souce modules have been converted to use the "-ObjC++" (Objective-C++) compiler option.  This allows for mixing Objective-C and c++ code in the same source module.  Only one c++ class (ParseString) currently exists.

Note: This source code must be compiled with NEXTSTEP 3.1, or later.

ImagePortfolio
This is the main Application subclass object.  It handles the application initialization, main menu functions, and window registration to allow files dragged from the Workspace Manager to be dropped into registered windows.

Portfolio
This class handles the delegate methods for a portfolio window.  It also handles passing a list of image files to the Workspace Manager via the View instance method 'dragFile:fromRect:slideBack:event:' so that the user can drag these files to another application which accepts files.

PalletMatrix
This is a subclass of the Matrix class which controls the selection, cutting, pasting, deleting, resizing, and sorting of the image cells that is contains.  This class is the first responder for the portfolio window.

PalletCell
This is a subclass of ActionCell which holds information on a single image, including the file path to the image and how it is to be displayed in the matrix.

ExpandImage
This object is used by instances of the Portfolio class to composite a large, unscaled, image into a window of its own.  

ExpandedView
This is a View subclass used by ExpandImage to display NXImages.  

imageReps.subproj
This subproject contains special NXCustomImageRep objects (such as GifImageRep) for viewing other image file formats.

apputils.subproj
This subproject contains special utilities for changing the app dock icon, manipulating files, etc.

thread.subproj
This subproject contains utilities used for multithreaded support.   See 'objectThreadPerform.m' for more information.