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.
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 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:fail:contract exception is raised. 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; furthermore, in contrast to the limitations of draw-bitmap in dc<%>, non-monochrome label masks work consistently on all platforms.
If & occurs in label (when label is a string), it is specially parsed; under Windows and X, the character following & is underlined in the displayed control to indicate a keyboard mnemonic. (Under 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). Under 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 under Mac OS X).
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, the bitmap must be valid (see ok? in bitmap%) and not installed in a bitmap-dc% object; otherwise, an exn:fail:contract exception is raised. 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; furthermore, in contrast to the limitations of draw-bitmap in dc<%>, non-monochrome label masks work consistently on all platforms. The bitmap label is installed only if the control was originally created with a bitmap label.