An object which displays itself on the screen and acts on user input gestures. Gadgets have the following slots:
| • | pref-dim - a cached value for pref-dim; do not read or write this slot directly. |
| • | parent - the gadget containing this one, or f if this gadget is not part of the visible gadget hierarchy. |
| • | children - a vector of child gadgets. Do not modify this vector directly, instead use add-gadget, add-gadgets, unparent or clear-gadget. |
| • | orientation - an orientation specifier. This slot is used by layout gadgets. |
| • | layout-state - stores the layout state of the gadget. Do not read or write this slot directly, instead call relayout and relayout-1 if the gadget needs to be re-laid out. |
| • | visible? - a boolean indicating if the gadget should display and receive user input. |
| • | root? - if set to t, layout changes in this gadget will not propagate to the gadget's parent. |
| • | clipped? - a boolean indicating if clipping will be enabled when drawing this gadget's children. |
| • | interior - an implementation of the UI pen protocol |
| • | boundary - an implementation of the UI pen protocol |
| • | model - a model or f; see Implementing controls |
instances holding their location and dimensions.
.