Greg's Object-Oriented Framework for the Macintosh
Goof is an object-oriented application development framework
for Think Pascal. It resembles a cut-down version of MacApp. Although
it doesn't do everything that MacApp or TCL or PowerPlant will do, it
does most of the important things, and it's much smaller.
There are two versions here. Goof 0.62 comes with a tutorial and
reference manual and some example code, but is several years old. Goof
0.7 is more recent and incorporates several improvements, but the
manual has not been updated to match.
Framework source only. Also download Goof 0.62 for documentation
and example code.
- Encapsulates all the standard parts of the event loop of a
Mac application. Most events are handled internally and the programmer
never sees them. Those he does need to see are dispatched to
- An easy-to-use mechanism is provided to ensure that the correct
menu items are enabled at all times and the right method is called in
response to a menu command.
- Windows can be divided into frames, each of which provides
a virtual drawing space that is automatically clipped, and
if desired, scrolled. All aspects of scrolling are automatic.
- Frames can contain controls that are scrolled with its contents,
and can be nested to arbitrary depths if desired.
- Implements most of the standard parts of the File Menu commands
for opening, saving and reverting documents, including opening from
the finder, and asking whether to save changes. The programmer need
only supply methods to read and write the contents of the file.
- Optional classes are provided for:
- Dialogs - an improved interface to the Dialog Manager for
modal and non-modal dialogs.
- Text editing - an improved interface to TextEdit.
- Tool palettes (non-floating).
- List views (Goof 0.7 only) - support for a one- or two-dimensional
array of cells, similar to the List Manager but much more
object-oriented and easier to customise.
- No built-in support for printing (although it's not hard
to add your own).
- No styled text editing support.
- No support for floating windows.
- Does not support the new method of passing Finder parameters.
No built-in support for high-level events (although you can catch
them and handle them yourself).
- No account is taken of the possibility of running out