.
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. |
| graft-state | a pair of boolean values that represent the current graft state of the gadget and what its next state will become. |
| 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.
.