Page 297 Table of Contents Index Page 299
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E



CHAPTER 28. APPLICATION FRAMES


28.5 Frame Managers

Frames may be adopted by a frame manager, which involves invoking a protocol for generating
the pane hierarchy of the frame. This protocol provides for selecting pane types for abstract
gadget panes based on the style requirements imposed by the frame manager. That is, the frame
manager is responsible for the "look and feel" of a frame.

After a frame is adopted it can be in any of the three following states: enabled, disabled, or
shrunk. An enabled frame is visible unless it is occluded by other frames or the user is browsing
outside of the portion of the frame manager's space that the frame occupies. A shrunken frame
provides a cue or handle for the frame, but generally will not show the entire contents of the
frame. For example, the frame may be iconified or an item for the frame may be placed in a
special suspended frame menu. A disabled frame is not visible, nor is there any user accessible
handle for enabling the frame.

Frames may also be disowned, which involves releasing the frame's panes as well as all associated
foreign resources.

=> frame-manager [Protocol Class]
The protocol class that corresponds to a frame manager. If you want to create a new class
that behaves like a frame manager, it should be a subclass of frame-manager. Subclasses of
frame-manager must obey the frame manager protocol.

There are no advertised standard frame manager classes. Each port will implement one or more
frame managers that correspond to the look and feel for the port.

=> frame-mananger-p object [Function]
Returns true if object is a frame manager, otherwise returns false.

28.5.1 Finding Frame Managers

Most frames need only deal directly with frame managers to the extent that they need to find a
frame manager into which they can insert themselves. Since frames will usually be invoked by
some user action that is handled by some frame manager, finding an appropriate frame manager
is usually straightforward.

Some frames will support the embedding of other frames within themselves. Such frames would
not only use frames but also act as frame managers, so that other frames could insert frames.
In this case, the embedded frames are mostly unaware that they are nested within other frames,
but only know that they are controlled by a particular frame manager.

Minor issue: How does one write a frame that supports an embedded frame, such as an editor
frame within a documentation-writing frame? | SWM

The find-frame-manager function provides a flexible means for locating an frame manager to


Page 297 Table of Contents Index Page 299
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E