A
style-delta% object encapsulates a style change. The changes expressible
by a delta include:
changing the font family
changing the font face
changing the font size to a new value
enlarging the font by an additive amount
enlarging the font by a multiplicative amount, etc.
changing the font style (normal, italic, or slant)
toggling the font style
changing the font to italic if it is currently slant, etc.
changing the font weight, etc.
changing the underline, etc.
changing the vertical alignment, etc.
changing the foreground color
dimming or brightening the foreground color, etc.
changing the background color, etc.
changing text backing transparency
The set-delta method is convenient for most
style delta settings; it takes a high-level delta specification and
sets the internal delta information.
To take full advantage of a style delta, it is necessary to understand
the internal on/off settings that can be manipulated through methods
such as set-weight-on. For example, the font
weight change is specified through the weight-on and
weight-off internal settings. Roughly, weight-on
turns on a weight setting when it is not present and
weight-off turns off a weight setting when it is
present. These two interact precisely in the following way:
If both weight-on and weight-off are set to 'base,
then the font weight is not changed.
If weight-on is not 'base, then the weight is set to
weight-on.
If weight-off is not 'base, then the weight will be set back
to 'normal when the base style has the weight weight-off.
If both weight-on and weight-off are set to the same
value, then the weight is toggled with respect to that value: if
the base style has the weight weight-on, then weight is changed to
'normal; if the base style has a different weight, it is changed to
weight-on.
If both weight-on and weight-off are set, but to
different values, then the weight is changed to weight-on
only when the base style has the weight weight-off.
Font styles, smoothing, underlining, and alignment work in an analogous manner.
The possible values for alignment-on and alignment-off are:
The possible values for style-on and style-off are:
'base
'normal
'italic
'slant
The possible values for smoothing-on and smoothing-off are:
'base
'default
'partly-smoothed
'smoothed
'unsmoothed
The possible values for underlined-on and underlined-off are:
The possible values for size-in-pixels-on and size-in-pixels-off are:
The possible values for transparent-text-backing-on and
transparent-text-backing-off are:
The possible values for weight-on and weight-off are:
The family and face settings in a style delta are interdependent:
When a delta’s face is #f and its family is
'base, then neither the face nor family are modified by
the delta.
When a delta’s face is a string and its family is
'base, then only face is modified by the delta.
When a delta’s family is not 'base, then both the face
and family are modified by the delta. If the delta’s face is
#f, then applying the delta sets a style’s face to
#f, so that the family setting prevails in choosing a
font.
The initialization arguments are passed on to
set-delta.
Tries to collapse into a single delta the changes that would be made
by applying this delta after a given delta. If the return value is
#f, then it is impossible to perform the
collapse. Otherwise, the return value is #t and this delta
will contain the collapsed change specification.
Copies the given style delta’s settings into this one.
Returns #t if the given delta is equivalent to this one in
all contexts or #f otherwise.
Gets the object additive color shift for the background (applied after
the multiplicative factor). Call this
add-color<%> object’s
methods to change the style delta’s additive background color shift.
Gets the multiplicative color shift for the background (applied before
the additive factor). Call this
mult-color<%> object’s
methods to change the style delta’s multiplicative background color
shift.
Gets the delta’s font face string. If this string is
#f and the
family is
'base when the delta is applied to a style,
the style’s face and family are not changed. However, if the face
string is
#f and the family is not
'base, then
the style’s face is changed to
#f.
See also get-family.
(send a-style-delta get-family) |
| → | | (or/c 'base 'default 'decorative 'roman 'script | 'swiss 'modern 'symbol 'system) |
|
|
Returns the delta’s font family. The possible values are
See also
get-face.
Gets the additive color shift for the foreground (applied after the
multiplicative factor). Call this
add-color<%> object’s
methods to change the style delta’s additive foreground color shift.
Gets the multiplicative color shift for the foreground (applied before
the additive factor). Call this
mult-color<%> object’s
methods to change the style delta’s multiplicative foreground color
shift.
Gets the additive font size shift (applied after the multiplicative factor).
Gets the multiplicative font size shift (applied before the additive factor).
(send a-style-delta set-delta [change-command]) |
→ (is-a?/c style-delta%) |
| change-command | | : | | (or/c 'change-nothing | 'change-normal | 'change-toggle-underline | 'change-toggle-size-in-pixels | 'change-normal-color | 'change-bold) |
| | | | = | | 'change-nothing |
|
|
→ (is-a?/c style-delta%) |
| change-command | | : | | (or/c 'change-family | 'change-style | 'change-toggle-style | 'change-weight | 'change-toggle-weight | 'change-smoothing | 'change-toggle-smoothing | 'change-alignment) |
|
|
param : symbol |
|
→ (is-a?/c style-delta%) |
| change-command | | : | | (or/c 'change-size | 'change-bigger | 'change-smaller) |
|
|
param : (integer-in 0 255) |
|
→ (is-a?/c style-delta%) |
| change-command | | : | | (or/c 'change-underline | 'change-size-in-pixels) |
|
|
on? : any/c |
Configures the delta with high-level specifications. The return value
is the delta itself.
Except for 'change-nothing and
'change-normal, the command only changes part of the
delta. Thus, applying 'change-bold and then
'change-italic sets the delta for both the style and
weight change.
The change-command argument specifies how the delta is changed;
the possible values are:
'change-nothing – reset all changes
'change-normal – turn off all styles and resizings
'change-toggle-underline – underline regions that are currently not underlined, and vice versa
'change-toggle-size-in-pixels – interpret sizes in pixels for regions that are currently interpreted in points, and vice versa
'change-normal-color – change the foreground and background to black and white, respectively
'change-italic – change the style of the font to italic
'change-bold – change the weight of the font to bold
'change-family – change the font family (param is a family; see
font%); see also
get-family
'change-style – change the style of the font (param is a style; see
font%)
'change-toggle-style – toggle the style of the font (param is a style; see
font%)
'change-weight – change the weight of the font (param is a weight; see
font%)
'change-toggle-weight – toggle the weight of the font (param is a weight; see
font%)
'change-smoothing – change the smoothing of the font (param is a smoothing; see
font%)
'change-toggle-smoothing – toggle the smoothing of the font (param is a smoothing; see
font%)
'change-alignment – change the alignment (param is an alignment; see
style-delta%)
'change-size – change the size to an absolute value (param is a size)
'change-bigger – make the text larger (param is an additive amount)
'change-smaller – make the text smaller (param is an additive amount)
'change-underline – set the underline status to either underlined or plain
'change-size-in-pixels – set the size interpretation to pixels or points
Makes the delta encode a background color change to match the absolute
color given; that is, it sets the multiplicative factors to
0.0 in the result of
get-background-mult, and it sets the additive values in the result
of
get-background-add to the specified color’s
values. In addition, it also disables transparent text backing by
setting
transparent-text-backing-on to
#f and
transparent-text-backing-off to
#t.
The return value of the method is the delta itself.
For the case that a string color name is supplied, see
color-database<%>.
Like
set-face, but sets the family at the same
time.
The return value is a-style-delta.
Makes the delta encode a foreground color change to match the absolute
color given; that is, it sets the multiplicative factors to
0.0 in the result of
get-foreground-mult, and it sets the additive values in the result
of
get-foreground-add to the specified color’s
values. The return value of the method is the delta itself.
For the case that a string color name is supplied, see
color-database<%>.
(send a-style-delta set-family v) → void? |
| v | | : | | (or/c 'base 'default 'decorative 'roman 'script | 'swiss 'modern 'symbol 'system) |
|
|
Sets the additive font size shift (applied
after the multiplicative factor).
Sets the multiplicative font size shift (applied
before the additive factor).