superclass: object% |
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.
(send a-style-list basic-style) → (is-a?/c style<%>) |
Returns the root style. Each style list has its own root style.
See also Preferences for information about the 'MrEd: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.
(send a-style-list find-named-style name) |
name : string? |
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.
| ||||||||
delta : (is-a?/c style-delta%) |
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.
(send a-style-list forget-notification key) → void? |
key : any/c |
See notify-on-change.
The key argument is the value returned by notify-on-change.
(send a-style-list index-to-style i) |
i : nonnegative-exact-integer? |
Returns the style associated with the given index, or #f for a bad index. See also style-to-index.
| ||||||||
name : string? | ||||||||
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.
(send a-style-list notify-on-change f) → any/c |
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.
| ||||||||
name : string? | ||||||||
Like new-named-style, except that if the name is already mapped to a style, the existing mapping is replaced.
(send a-style-list style-to-index style) |
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.