button%
Implements: control<%>
Whenever a button is clicked by the user, the buttons's callback procedure is invoked. A callback procedure is provided as an initialization argument when each button is created.
( -> instantiate button% () (label _) (parent _) (callback _) [(style _)] [(enabled _)] [(vert-margin _)] [(horiz-margin _)] [(min-width _)] [(min-height _)] [(stretchable-width _)] [(stretchable-height _)])button% object
label : string (up to 200 characters) or bitmap% object
parent : frame%, dialog%, panel%, or pane% object
callback : procedure of two arguments: a button% object and a control-event% object
style = : list of symbols in null'(border deleted)
enabled = : boolean
#t
vert-margin = : exact integer in [0, 1000]
2
horiz-margin = : exact integer in [0, 1000]
2
min-width = : exact integer in [0, 10000]
0
min-height = : exact integer in [0, 10000]
0
stretchable-width = : boolean
#f
stretchable-height = : boolean#f
Creates a button with a string or bitmap label.
If label is a bitmap, then the bitmap
must be valid (see ok? in bitmap%) and not installed
in a bitmap-dc% object; otherwise, an exn:application:mismatch exception is raised.
If an ampersand (``&'') occurs in label (when label is a string), it
is specially parsed; under Windows and X, the character following an
ampersand is underlined in the displayed control to indicate a
keyboard mnemonic. (Under Mac OS, 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 ampersand itself
is removed from label before it is displayed for the control; a
double-ampersand in label is converted to a single ampersand
(with no mnemonic underlining). Mnemonic keyboard events are handled
by on-traverse-char (but not under
Mac OS).
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.
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<%>.
Methods
set-label
All Methods
accept-drop-files from window<%>
client->screen from window<%>
command from control<%>
enable from window<%>
focus from window<%>
get-client-size from window<%>
get-cursor from window<%>
get-graphical-min-size from area<%>
get-height from window<%>
get-label from window<%>
get-parent from area<%>
get-plain-label from window<%>
get-size from window<%>
get-top-level-window from area<%>
get-width from window<%>
get-x from window<%>
get-y from window<%>
has-focus? from window<%>
horiz-margin from subarea<%>
is-enabled? from window<%>
is-shown? from window<%>
min-height from area<%>
min-width from area<%>
on-drop-file from window<%>
on-focus from window<%>
on-move from window<%>
on-size from window<%>
on-subwindow-char from window<%>
on-subwindow-event from window<%>
on-superwindow-enable from window<%>
on-superwindow-show from window<%>
popup-menu from window<%>
refresh from window<%>
screen->client from window<%>
set-cursor from window<%>
set-label from button%
overrides set-label from window<%>
show from window<%>
stretchable-height from area<%>
stretchable-width from area<%>
vert-margin from subarea<%>