The push button and slider gadgets alluded to previously are abstract gadgets . The callback interface to all of the various implementations of the gadget is defined by the abstract class. In the :panes clause of define-application-frame , the abbreviation for a gadget is the name of the abstract gadget class.
At pane creation time (that is, make-pane ), the frame manager resolves the abstract class into a specific implementation class; the implementation classes specify the detailed look and feel of the gadget. Each frame manager will keep a mapping from abstract gadgets to an implementation class; if the frame manager does not implement its own gadget for the abstract gadget classes in the following sections, it will use the portable class provided by CLIM. Since every implementation of an abstract gadget class is a subclass of the abstract class, they all share the same programmer interface.
Common Lisp Interface Manager 2.0 User's Guide - 20 Sep 2011