▼ |  | Scriblib: Extra Scribble Libraries

1 | Writing Examples with Pict Results
2 | Figures
3 | Bibliographies
4 | Footnotes

On this page:

gui-interaction
gui-interaction-eval
gui-interaction-eval-show
gui-schemeblock+ eval
gui-schememod+ eval
gui-def+ int
gui-defs+ int

Version: 5.0.2
top ← prev up next →

### 1`` Writing Examples with Pict Results

( require scriblib/gui-eval )

The scriblib/gui-eval library support example evaluations with results that are slideshow picts.

The trick is that racket/gui is not generally available when rendering documentation, because it requires a GUI context. The picture output is rendered to an image file when the MREVAL environment variable is set, so run the enclosing document once with the environment varibale to generate the images. Future runs (with the environment variable unset) use the generated image.

( gui-interaction datum ...)

( gui-interaction
#:eval+opts the-eval get-predicate? get-render
get-get-width get-get-height
datum ...)

( gui-interaction-eval datum ...)

( gui-interaction-eval
#:eval+opts the-eval get-predicate? get-render
get-get-width get-get-height
datum ...)

( gui-interaction-eval-show datum ...)

( gui-interaction-eval-show
#:eval+opts the-eval get-predicate? get-render
get-get-width get-get-height
datum ...)

( gui-schemeblock+eval datum ...)

( gui-schemeblock+eval
#:eval+opts the-eval get-predicate? get-render
get-get-width get-get-height
datum ...)

( gui-schememod+eval datum ...)

( gui-schememod+eval
#:eval+opts the-eval get-predicate? get-render
get-get-width get-get-height
datum ...)

( gui-def+int datum ...)

( gui-def+int
#:eval+opts the-eval get-predicate? get-render
get-get-width get-get-height
datum ...)

( gui-defs+int datum ...)

( gui-defs+int
#:eval+opts the-eval get-predicate? get-render
get-get-width get-get-height
datum ...)

The first option of each of the above is like interaction, etc., but actually evaluating the forms only when the MREVAL environment variable is set, and then in an evaluator that is initialized with racket/gui/base and slideshow.

The second option of each allows you to specify your own evaluator via the the-eval argument and then to specify four thunks that return functions for finding and rendering graphical objects:

- get-predicate? : (-> (-> any/c boolean?)) Determines if a value is a graphical object (and thus handled by the other operations)

- get-render : (-> (-> any/c (is-a?/c dc<%>) number? number? void?)) Draws a graphical object (only called if the predicate returned #t; the first argument will be the value for which the predicate holds).

- get-get-width : (-> (-> any/c number?)) Gets the width of a graphical object (only called if the predicate returned #t; the first argument will be the value for which the predicate holds).

- get-get-height : (-> (-> any/c number?)) Gets the height of a graphical object (only called if the predicate returned #t; the first argument will be the value for which the predicate holds).

top ← prev up next →