80 lines
3.1 KiB
Racket
80 lines
3.1 KiB
Racket
#lang scribble/doc
|
|
@(require "common.ss")
|
|
|
|
@defclass/title[slider% object% (control<%>)]{
|
|
|
|
A @scheme[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? false/c)]
|
|
[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 (one-of/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 @scheme[label] is a string, it is used as the label for the slider.
|
|
Otherwise, the slider does not display its label.
|
|
|
|
@labelstripped[(scheme label) @elem{} @elem{move the keyboard focus to the slider}]
|
|
|
|
The @scheme[min-value] and @scheme[max-value] arguments specify the
|
|
range of the slider, inclusive. The @scheme[init-value] argument
|
|
optionally specifies the slider's initial value. If the sequence
|
|
[@scheme[min-value], @scheme[initial-value], @scheme[maximum-value]]
|
|
is not increasing, @|MismatchExn|.
|
|
|
|
The @scheme[callback] procedure is called (with the event type
|
|
@indexed-scheme['slider]) when the user changes the slider's value.
|
|
|
|
The @scheme[style] argument must include either @scheme['vertical] for
|
|
a vertical slider, or @scheme['horizontal] for a horizontal
|
|
slider. If @scheme[style] includes @scheme['plain], the slider does
|
|
not display numbers for its range and current value to the user.
|
|
@HVLabelNote[@scheme[style]]{slider} @DeletedStyleNote[@scheme[style] @scheme[parent]]{slider}
|
|
|
|
@FontKWs[@scheme[font]] @WindowKWs[@scheme[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 @scheme[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}]
|
|
|
|
}}
|
|
|