Version: 5.0
27.1 Notify-boxes
(require unstable/gui/notify) |
This library is unstable;
compatibility will not be maintained.
See Unstable for more information.
notify-box% : class? |
superclass: object% |
A notify-box contains a mutable cell. The notify-box notifies its
listeners when the contents of the cell is changed.
Examples: |
> (define nb (new notify-box% (value 'apple))) |
> (send nb get) |
'apple |
> (send nb set 'orange) |
> (send nb listen (lambda (v) (printf "New value: ~s\n" v))) |
> (send nb set 'potato) |
New value: potato |
(new notify-box% [value value]) → (is-a?/c notify-box%) value : any/c Creates a notify-box initially containing value.Gets the value currently stored in the notify-box.Updates the value stored in the notify-box and notifies the listeners.Adds a callback to be invoked on the new value when the notify-box’s contents change.Removes a previously-added callback.
(send a-notify-box remove-all-listeners) → void? Removes all previously registered callbacks.
| ||||||||||||||
proc : (case-> (-> any/c) (-> any/c void?)) | ||||||||||||||
readonly? : boolean? = #f |
Creates a notify-box with an initial value of (proc). Unless
readonly? is true, proc is invoked on the new value
when the notify-box is updated.
Useful for tying a notify-box to a preference or parameter. Of course, changes made directly to the underlying parameter or state are not reflected in the notify-box.
Examples: |
> (define animal (make-parameter 'ant)) |
> (define nb (notify-box/pref animal)) |
> (send nb listen (lambda (v) (printf "New value: ~s\n" v))) |
> (send nb set 'bee) |
New value: bee |
> (animal 'cow) |
> (send nb get) |
'bee |
> (send nb set 'deer) |
New value: deer |
> (animal) |
'deer |
(define-notify name value-expr) | ||||||
|
Class-body form. Declares name as a field and
get-name, set-name,
and listen-name as methods that delegate to
the get, set, and
listen methods of value.
The value-expr argument must evaluate to a notify-box, not just the initial contents for a notify box.
Useful for aggregating many notify-boxes together into one “configuration” object.
Examples: | |||||
| |||||
> (define c (new config%)) | |||||
| |||||
| |||||
> (send c get-animal) | |||||
'bear |
| ||||||||||||
→ (is-a?/c checkable-menu-item%) | ||||||||||||
parent : (or/c (is-a?/c menu%) (is-a?/c popup-menu%)) | ||||||||||||
label : label-string? | ||||||||||||
notify-box : (is-a?/c notify-box%) |
Creates a checkable-menu-item% tied to notify-box. The menu item is
checked whenever (send notify-box get) is true. Clicking the
menu item toggles the value of notify-box and invokes its listeners.
| |||||||||||||||||||||
| |||||||||||||||||||||
label : label-string? | |||||||||||||||||||||
notify-box : (is-a?/c notify-box%) |
Creates a check-box% tied to notify-box. The
check-box is checked whenever (send notify-box get) is
true. Clicking the check box toggles the value of notify-box
and invokes its listeners.
| ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
label : label-string? | ||||||||||||||||||||||||||||
choices : (listof label-string?) | ||||||||||||||||||||||||||||
notify-box : (is-a?/c notify-box%) |
Creates a choice% tied to notify-box. The choice
control has the value (send notify-box get) selected, and
selecting a different choice updates notify-box and invokes
its listeners.
If the value of notify-box is not in choices, either initially or upon an update, an error is raised.
| ||||||||||||
→ (listof (is-a?/c checkable-menu-item%)) | ||||||||||||
parent : (or/c (is-a?/c menu%) (is-a?/c popup-menu%)) | ||||||||||||
labels : (listof label-string?) | ||||||||||||
notify-box : (is-a?/c notify-box%) |
Returns a list of checkable-menu-item% controls tied to
notify-box. A menu item is checked when its label is
(send notify-box get). Clicking a menu item updates
notify-box to its label and invokes notify-box’s
listeners.