{"size": 1051, "ext": "scrbl", "max_stars_repo_path": "gui-doc/mrlib/scribblings/arrow-toggle-snip.scrbl", "max_stars_repo_name": "jjsimpso/gui", "max_stars_repo_stars_event_min_datetime": "2015-03-17T22:11:52.000Z", "max_stars_repo_stars_event_max_datetime": "2022-03-12T15:09:34.000Z", "max_issues_repo_path": "gui-doc/mrlib/scribblings/arrow-toggle-snip.scrbl", "max_issues_repo_name": "jjsimpso/gui", "max_issues_repo_issues_event_min_datetime": "2015-01-09T15:53:25.000Z", "max_issues_repo_issues_event_max_datetime": "2022-03-31T16:21:29.000Z", "max_forks_repo_path": "gui-doc/mrlib/scribblings/arrow-toggle-snip.scrbl", "max_forks_repo_name": "jjsimpso/gui", "max_forks_repo_forks_event_min_datetime": "2015-01-08T13:03:07.000Z", "max_forks_repo_forks_event_max_datetime": "2022-03-26T21:49:09.000Z"}
{"max_stars_count": 65, "max_issues_count": 231, "max_forks_count": 89, "avg_line_length": 27.6578947368, "max_line_length": 70, "alphanum_fraction": 0.7392959087}
#lang scribble/doc
@(require "common.rkt" (for-label mrlib/arrow-toggle-snip))

@title{Arrow Toggle Snip}

@defmodule[mrlib/arrow-toggle-snip]

@defclass[arrow-toggle-snip% snip% ()]{

Represents a toggle control, displayed as a right-facing arrow (off or
``closed'') or a downward-facing arrow (on or ``open'').

The size of the arrow is determined by the style (and font) applied to
the snip. The arrow is drawn inscribed in a square resting on the
baseline, but the snip reports its size (usually) as the same as a
capital @litchar{X}; this means that the snip should look good next to
text (in the same style) no matter whether base-aligned or
top-aligned.

@defconstructor[([callback (-> boolean? any) void])]{

The @racket[on-up] and @racket[on-down] callbacks are called when the
snip is toggled.
}

@defmethod[(get-toggle-state) boolean?]{

Get the control's state.
}

@defmethod[(set-toggle-state [v boolean?]) void?]{

Sets the control's state. If the new state is different from the
previous state, the appropriate callback is called.
}

}
