Hyperbole User Manual
10.3.2 Operational and Storage Formats
Hyperbole uses a terse format to store explicit buttons and a more
meaningful one to show users and to manipulate during editing. The
terse format consists solely of button attribute values whereas the edit
format includes an attribute name with each attribute value. A button
in edit format consists of a Lisp symbol together with its attribute list
which holds the attribute names and values. In this way, buttons may be
passed along from function to function simply by passing the symbol to
which the button is attached. Most functions utilize the pre-defined
hbut:current symbol by default to store and retrieve the last
encountered button in edit format.
The hbdata class handles the terse, stored format. The
hbut, ebut, and ibut classes work with the
name/value format. This separation permits the wholesale replacement of
the storage manager with another, with any interface changes hidden from
any Hyperbole client programming.