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. Each frame manager is associated with one specific port. However, a single port may have multiple frame managers managing various frames associated with the port.
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]
Summary: 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-manage r must obey the frame manager protocol.
There are no advertised standard frame manager classes. Each port implements one or more frame managers that correspond to the look and feel for the port.
frame-manager-p [Function]
Summary: Returns t if object is a frame manager; otherwise, it returns nil .
Common Lisp Interface Manager 2.0 User's Guide - 7 Aug 2017