6.7 snip-class%

► |  | The Racket Graphical Interface Toolkit

1 | Windowing
2 | Widget Gallery
3 | Windowing Classes
4 | Windowing Functions
5 | Editors
6 | Snip and Style Classes
7 | Editor Classes
8 | Editor Functions
9 | WXME Decoding
10 | Preferences
11 | Dynamic Loading
12 | Startup Actions
13 | Platform Dependencies
| Index

▼ | 6 | Snip and Style Classes

6.1 | add-color<%>
6.2 | image-snip%
6.3 | mult-color<%>
6.4 | readable-snip<%>
6.5 | snip%
6.6 | snip-admin%
6.7 | snip-class%
6.8 | snip-class-list<%>
6.9 | string-snip%
6.10 | style<%>
6.11 | style-delta%
6.12 | style-list%
6.13 | tab-snip%

On this page:

new
get-classname
get-version
read
read-header
reading-version
set-classname
set-version
write-header

top ← prev up next →

class snip-class% : class?
superclass: object%

Useful snip classes are defined by instantiating derived subclasses of snip-class%. A class derived from snip-class% serves as a kind of “meta-class” for snips; each snip is associated with an instance of snip-class% as its snip class.

In deriving a new snip-class% class, override the read method. Then, for each instance of the derived class (where each instance corresponds to a single snip class):

- Set the classname using set-classname.

- Set the version using set-version.

- Install the class into the list returned by get-the-snip-class-list using the add method. Note that if the same name is inserted into the same class list multiple times, all but the first insertion is ignored.

See also Snip Classes.

> constructor (new snip-class%) → (is-a?/c snip-class%)

Creates a (useless) snip class.

> method (send a-snip-class get-classname) → string?

Returns the class’s name, a string uniquely designating this snip class. For example, the standard text snip classname is "wxtext". Names beginning with wx are reserved.

A snip class name should usually have the form "((lib ...)\n(lib ...))" to enable on-demand loading of the class. See Snip Classes for details.

> method (send a-snip-class get-version) → exact-integer?

Returns the version of this snip class. When attempting to load a file containing a snip with the same class name but a different version, the user is warned.

> method (send a-snip-class read f) → (or/c (is-a?/c snip%) #f)
> f : (is-a?/c editor-stream-in%)

Specification: Reads a snip from a given stream, returning a newly created snip as the result or #f if there is an error.

Default implementation: Returns #f.

> method (send a-snip-class read-header f) → boolean?
> f : (is-a?/c editor-stream-in%)

Specification: Called to read header information that may be useful for every snip read in this class. This method is only called once per editor read session, and only if the stream contains header information for this class.

The return value is #f if a read error occurs or anything else otherwise.

See also write-header.

Default implementation: Returns #t.

> method (send a-snip-class reading-version stream) → exact-integer?
> stream : (is-a?/c editor-stream-in%)

Returns the version number specified for this snip class for snips currently being read from the given stream.

> method (send a-snip-class set-classname name) → void?
> name : string?

Sets the class’s name. See also get-classname.

> method (send a-snip-class set-version v) → void?
> v : exact-integer?

Sets the version of this class. See get-version.

> method (send a-snip-class write-header stream) → boolean?
> stream : (is-a?/c editor-stream-out%)

Specification: Called to write header information that may be useful for every snip written for this class. This method is only called once per editor write session, and only if the editor contains snips in this class.

When reading the snips back in, read-header will only be called if write-header writes some data to the stream.

The return value is #f if a write error occurs or anything else otherwise.

Default implementation: Returns #t.
top ← prev up next →