On this page:
set-label

Inherited methods:

from control<%>

command

get-font

from window<%>

accept-drop-files

client->screen

enable

focus

get-client-size

get-cursor

get-handle

get-height

get-label

get-plain-label

get-size

get-width

get-x

get-y

has-focus?

is-enabled?

is-shown?

on-drop-file

on-focus

on-move

on-size

on-subwindow-char

on-subwindow-event

on-superwindow-enable

on-superwindow-show

popup-menu

refresh

screen->client

set-cursor

show

from area<%>

get-graphical-min-size

get-parent

get-top-level-window

min-height

min-width

stretchable-height

stretchable-width

from subarea<%>

horiz-margin

vert-margin

Version: 4.1

button% : class?

  superclass: object%

  extends: 

control<%>

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%)

  label : (or/c label-string? (is-a?/c bitmap%))

  

parent

 

:

 

(or/c (is-a?/c frame%) (is-a?/c dialog%)

      (is-a?/c panel%) (is-a?/c pane%))

  

callback

 

:

 

((is-a?/c button%) (is-a?/c control-event%) . -> . any)

 

 

 

=

 

(lambda (b e) (void))

  style : (one-of/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 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).

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<%>.

(send a-button set-label label)  void?

  label : (or/c label-string? (is-a?/c bitmap%))

Overrides set-label in window<%>.

The same as set-label in window<%> when label is a string.

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.