Whenever a button is clicked by the user, the button’s callback
procedure is invoked. A callback procedure is provided as an
initialization argument when each button is created.
(new button% | | | | [label label] | | | | [parent parent] | | | [ | [callback callback] | | | | [style style] | | | | [font font] | | | | [enabled enabled] | | | | [vert-margin vert-margin] | | | | [horiz-margin horiz-margin] | | | | [min-width min-width] | | | | [min-height min-height] | | | | [stretchable-width stretchable-width] | | | | [stretchable-height stretchable-height]]) | |
|
→ (is-a?/c button%) |
|
|
|
style : (listof (or/c 'border 'deleted)) = null |
font : (is-a?/c font%) = normal-control-font |
enabled : any/c = #t |
vert-margin : (integer-in 0 1000) = 2 |
horiz-margin : (integer-in 0 1000) = 2 |
min-width : (integer-in 0 10000) = graphical-minimum-width |
min-height : (integer-in 0 10000) = graphical-minimum-height |
stretchable-width : any/c = #f |
stretchable-height : any/c = #f |
Creates a button with a string label, bitmap label, or both.
If
label is a bitmap, and if the
bitmap has a mask (see
get-loaded-mask in
bitmap%)
that is the same size as the bitmap, then the mask is used for the
label. Modifying a bitmap while it is used as a label has
an unspecified effect on the displayed label. If
label is a list, then
the button has both a bitmap and string label, and the
symbol
'left,
'top,
'right, or
'bottom
specifies the location of the image relative to the text on the button.
If & occurs in label (when label includes a
string), it is specially parsed; on Windows and Unix, the character
following & is underlined in the displayed control to
indicate a keyboard mnemonic. (On Mac OS X, mnemonic underlines are
not shown.) The underlined mnemonic character must be a letter or a
digit. The user can effectively click the button by typing the
mnemonic when the control’s top-level-window contains the keyboard
focus. The user must also hold down the Meta or Alt key if the
keyboard focus is currently in a control that handles normal
alphanumeric input. The & itself is removed from
label before it is displayed for the control; a &&
in label is converted to & (with no mnemonic
underlining). On Mac OS X, a parenthesized mnemonic character is
removed (along with any surrounding space) before the label is
displayed, since a parenthesized mnemonic is often used for non-Roman
languages. Finally, any text after a tab character is removed on all
platforms. Mnemonic keyboard events are handled by
on-traverse-char (but not on Mac OS
X).
The callback procedure is called (with the event type
'button) whenever the user clicks the button.
If style includes 'border, the button is drawn with
a special border that indicates to the user that it is the default
action button (see on-traverse-char). If style includes 'deleted, then the button is created as hidden,
and it does not affect its parent’s geometry; the button can be made active later by calling
parent’s add-child method.
The font argument determines the font for the control. For information about the enabled argument, see window<%>. For information about the horiz-margin and vert-margin
arguments, see subarea<%>. For information about the
min-width, min-height, stretchable-width, and
stretchable-height arguments, see area<%>.
Otherwise, sets the bitmap label for a bitmap button. Since label is a bitmap, if the
bitmap has a mask (see get-loaded-mask in bitmap%)
that is the same size as the bitmap, then the mask is used for the
label. Modifying a bitmap while it is used as a label has
an unspecified effect on the displayed label.
The bitmap label is installed only
if the control was originally created with a bitmap label.
If the button has both a string and a bitmap label, then either can be
set using
set-label.