15 Conversion to Picts

▼ |  | Pict: Functional Pictures

1 | Pict Datatype
2 | Basic Pict Constructors
3 | Pict Combiners
4 | Pict Drawing Adjusters
5 | Bounding Box Adjusters
6 | Pict Finders
7 | More Pict Constructors
8 | Animation Helpers
9 | Color Helpers
10 | Shadows
11 | Conditional Combinations
12 | Tree Layout
13 | Miscellaneous
14 | Rendering
15 | Conversion to Picts

On this page:

prop: pict-convertible
prop: pict-convertible?
pict-convertible?
pict-convert

top ← prev up next →

### 15`` Conversion to Picts

(require pict/convert) | package: pict-lib

The pict/convert library defines a protocol for values to convert themselves to picts. The protocol is used by DrRacket’s interactions window, for example, to render values that it prints. Anything that is pict-convertible? can be used wherever a pict can be used. These values will be automatically converted to a pict when needed.

> value prop:pict-convertible : struct-type-property?

A property whose value should be a procedure matching the contract (-> any/c pict?). The procedure is called when a structure with the property is passed to pict-convert; the argument to the procedure is the structure, and the procedure’s result should be a pict.

> value prop:pict-convertible? : struct-type-property?

A property whose value should be a predicate procedure (i.e., matching the contract predicate/c).

If this property is not set, then it is assumed to be the function (λ (x) #t).

If this property is set, then this procedure is called by pict-convertible? to determine if this particular value is convertible (thereby supporting situations where some instances of a given struct are convertible to picts, but others are not).

> procedure (pict-convertible? v) → boolean?
> v : any/c

Returns #t if v supports the conversion protocol (by being a struct with the prop:pict-convertible property) and #f otherwise. This function returns true for pict?s.

> procedure (pict-convert v) → pict?
> v : pict-convertible?

Requests a data conversion from v to a pict.
top ← prev up next →