A
style-list% object contains a set of
style<%>
objects and maintains the hierarchical relationships between them. A
style<%> object can only be created through the methods of a
style-list% object. There is a global style list object,
the-style-list, but any number of independent lists can be
created for separate style hierarchies. Each editor creates its own
private style list.
See Styles for more information.
The root style, named "Basic", is automatically created.
Returns the root style. Each style list has its own root style.
See also Preferences for information about the
'GRacket:default-font-size
preference.
Converts style, which can be from another style list, to a style
in this list. If style is already in this list, then style
is returned. If style is named and a style by that name is
already in this list, then the existing named style is returned.
Otherwise, the style is converted by converting its base style
(and shift style if style is a join style) and then creating
a new style in this list.
Finds a style by name. If no such style can be found, #f is
returned.
Creates a new join style, or finds an appropriate existing one. The
returned style is always unnamed. See
Styles for more
information.
The base-style argument must be a style within this style
list.
Creates a new derived style, or finds an appropriate existing one.
The returned style is always unnamed. See
Styles for more
information.
The base-style argument must be a style within this style
list. If base-style is not a join style, if it has no name,
and if its delta can be collapsed with delta (see
collapse in style-delta%), then the collapsed delta is used in
place of delta, and the base style of base-style is
used in place of base-style; this collapsing and substitution
of base styles is performed recursively.
The key argument is the value returned by notify-on-change.
Returns the style associated with the given index, or
#f for
a bad index. See also
style-to-index.
Creates a new named style, unless the name is already being used.
If name is already being used, then like-style is
ignored and the old style associated to the name is
returned. Otherwise, a new style is created for name with
the same characteristics (i.e., the same base style and same style
delta or shift style) as like-style.
The like-style style must be in this style list, otherwise
the named style is derived from the basic style with an empty style
delta.
Attaches a callback to the style list. The callback is invoked
whenever a style is modified.
Often, a change in one style will trigger a change in several other
derived styles; to allow clients to handle all the changes in a
batch, #f is passed in as the changing style after a set of
styles has been processed.
The return value from notify-on-change is an
opaque key to be used with forget-notification.
Returns the number of styles in the list.
Like
new-named-style, except that if the name is
already mapped to a style, the existing mapping is replaced.
Returns the index for a particular style. The index for a style’s base
style (and shift style, if it is a join style) is guaranteed to be
lower than the style’s own index. (As a result, the root style’s
index is always 0.) A style’s index can change whenever a new
style is added to the list, or the base style or shift style of
another style is changed.
If the given style is not in this list, #f is returned.