Every button has a button type, which defines default values for the button's properties. Button types are arranged in a hierarchy, with specialized types inheriting from more general types, so that it's easy to define special-purpose types of buttons for specific tasks.
Define a `button type' called name (a symbol). The remaining arguments form a sequence of property value pairs, specifying default property values for buttons with this type (a button's type may be set by giving it a
typeproperty when creating the button, using the
In addition, the keyword argument
:supertypemay be used to specify a button-type from which name inherits its default property values. Note that this inheritance happens only when name is defined; subsequent changes to a supertype are not reflected in its subtypes.
define-button-type to define default properties for
buttons is not necessary—buttons without any specified type use the
button—but it is encouraged, since
doing so usually makes the resulting code clearer and more efficient.