
It's very helpful to have a visual aid when dealing with a graphical interface toolkit. This patch adds an overview of the widgets available in the library consisting of screen shots of the main ones and the snippets used to produce them. Each widget image link back to the full documentation.
83 lines
3.7 KiB
Racket
83 lines
3.7 KiB
Racket
#lang scribble/doc
|
|
@(require "common.rkt")
|
|
|
|
@centered{@image[#:suffixes @list[".png"]]{image/button}}
|
|
|
|
@defclass/title[button% object% (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.
|
|
|
|
@defconstructor[([label (or/c label-string?
|
|
(is-a?/c bitmap%)
|
|
(list/c (is-a?/c bitmap%)
|
|
label-string?
|
|
(or/c 'left 'top 'right 'bottom)))]
|
|
[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 (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.
|
|
@bitmaplabeluse[label] If @racket[label] is a list, then
|
|
the button has both a bitmap and string label, and the
|
|
symbol @racket['left], @racket['top], @racket['right], or @racket['bottom]
|
|
specifies the location of the image relative to the text on the button.
|
|
|
|
If @litchar{&} occurs in @racket[label] (when @racket[label] includes a
|
|
string), it is specially parsed; on Windows and Unix, the character
|
|
following @litchar{&} 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 @litchar{&} itself is removed from
|
|
@racket[label] before it is displayed for the control; a @litchar{&&}
|
|
in @racket[label] is converted to @litchar{&} (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
|
|
@method[top-level-window<%> on-traverse-char] (but not on Mac OS
|
|
X).
|
|
|
|
The @racket[callback] procedure is called (with the event type
|
|
@indexed-racket['button]) whenever the user clicks the button.
|
|
|
|
If @racket[style] includes @racket['border], the button is drawn with
|
|
a special border that indicates to the user that it is the default
|
|
action button (see @method[top-level-window<%>
|
|
on-traverse-char]). @DeletedStyleNote[@racket[style] @racket[parent]]{button}
|
|
|
|
@FontKWs[@racket[font]] @WindowKWs[@racket[enabled]] @SubareaKWs[] @AreaKWs[]}
|
|
|
|
|
|
@defmethod[#:mode override
|
|
(set-label [label (or/c label-string?
|
|
(is-a?/c bitmap%))])
|
|
void?]{
|
|
|
|
The same as @xmethod[window<%> set-label] when @racket[label] is a
|
|
string.
|
|
|
|
Otherwise, sets the bitmap label for a bitmap button. @bitmaplabeluseisbm[label]
|
|
@|bitmapiforiglabel|
|
|
|
|
If the button has both a string and a bitmap label, then either can be
|
|
set using @method[button% set-label].
|
|
|
|
}}
|
|
|