racket/collects/scribblings/gui/slider-class.scrbl
Diogo F. S. Ramos 54ab1bfbfa Add a Widget Gallery to Racket GUI documentation
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.
2012-09-18 14:17:36 -04:00

83 lines
3.2 KiB
Racket

#lang scribble/doc
@(require "common.rkt")
@centered{@image[#:suffixes @list[".png"]]{image/slider}}
@defclass/title[slider% object% (control<%>)]{
A @racket[slider] object is a panel item with a handle that the user can
drag to change the control's value. Each slider has a fixed minimum
and maximum value.
Whenever the user changes the value of a slider, its callback
procedure is invoked. A callback procedure is provided as an
initialization argument when each slider is created.
@defconstructor[([label (or/c label-string? #f)]
[min-value (integer-in -10000 10000)]
[max-value (integer-in -10000 10000)]
[parent (or/c (is-a?/c frame%) (is-a?/c dialog%)
(is-a?/c panel%) (is-a?/c pane%))]
[callback ((is-a?/c slider%) (is-a?/c control-event%) . -> . any) (lambda (b e) (void))]
[init-value (integer-in -10000 10000) min-value]
[style (listof (or/c 'horizontal 'vertical 'plain
'vertical-label 'horizontal-label
'deleted))
'(horizontal)]
[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 (memq 'horizontal style)]
[stretchable-height any/c (memq 'vertical style)])]{
If @racket[label] is a string, it is used as the label for the slider.
Otherwise, the slider does not display its label.
@labelstripped[@racket[label]
@elem{} @elem{move the keyboard focus to the slider}]
The @racket[min-value] and @racket[max-value] arguments specify the
range of the slider, inclusive. The @racket[init-value] argument
optionally specifies the slider's initial value. If the sequence
[@racket[min-value], @racket[initial-value], @racket[maximum-value]]
is not increasing, @|MismatchExn|.
The @racket[callback] procedure is called (with the event type
@indexed-racket['slider]) when the user changes the slider's value.
The @racket[style] argument must include either @racket['vertical] for
a vertical slider, or @racket['horizontal] for a horizontal
slider. If @racket[style] includes @racket['plain], the slider does
not display numbers for its range and current value to the user.
@HVLabelNote[@racket[style]]{slider} @DeletedStyleNote[@racket[style] @racket[parent]]{slider}
@FontKWs[@racket[font]] @WindowKWs[@racket[enabled]] @SubareaKWs[] @AreaKWs[]
}
@defmethod[(get-value)
(integer-in -10000 10000)]{
Gets the current slider value.
}
@defmethod[(set-value [value (integer-in -10000 10000)])
void?]{
Sets the value (and displayed position) of the slider. (The control's
callback procedure is @italic{not} invoked.) If @racket[value] is
outside the slider's minimum and maximum range, @|MismatchExn|.
@MonitorCallback[@elem{A slider's value} @elem{the user clicking the control} @elem{value}]
}}