A font is an object which determines the appearance of text,
primarily when drawing text to a device context. A font is determined
by seven properties:
size — The size of the text, either in points (the default)
or logical drawing units, depending on the
“size-in-pixels?” property (see below).
family — A platform- and device-independent font
designation. The families are:
'default
'decorative
'roman
'script
'swiss
'modern (fixed width)
'symbol (Greek letters and more)
'system (similar to the font to draw control labels,
but see normal-control-font)
The terminology “family” and “face” is mangled relative
to its usual meaning. A font% “face” is really
a font family in the usual terminology, while a font%
“family” is a kind of abstract font family that is mapped to a
particular font family on a given platform.
face — A string face name, such as "Courier". The format
and meaning of a face name is platform- and
device-specific. If a font’s face name is #f,
then the font’s appearance depends only on the
family. If a face is provided but no mapping is
available for the face name (for a specific platform
or device), then the face name is ignored and the
family is used. See font-name-directory<%>
for information about how face names are mapped for
drawing text.
style — The slant style of the font, one of:
'normal
'slant (a.k.a “oblique”)
'italic
weight — The weight of the font, one of:
underline? — #t for underlined, #f for plain.
smoothing — Amount of anti-alias smoothing, one of:
'default (platform-specific, sometimes user-configurable)
'partly-smoothed (gray anti-aliasing)
'smoothed (sub-pixel anti-aliasing)
'unsmoothed
size-in-pixels? — #t if the size of the font
is in logical drawing units (i.e., pixels for an unscaled screen or
bitmap drawing context), #f if the size of the font is in
points (which can depend on screen resolution).
To avoid creating multiple fonts with the same characteristics, use
the global font-list% object the-font-list.
See also
font-name-directory<%>.
(make-object font%) → (is-a?/c font%) |
|
size : (integer-in 1 255) |
| family | | : | | (one-of/c 'default 'decorative 'roman 'script | 'swiss 'modern 'symbol 'system) |
|
|
style : (one-of/c 'normal 'italic 'slant) = 'normal |
weight : (one-of/c 'normal 'bold 'light) = 'normal |
underline? : any/c = #f |
| smoothing | | : | | (one-of/c 'default 'partly-smoothed | 'smoothed 'unsmoothed) |
| | = | | 'default |
|
size-in-pixels? : any/c = #f |
|
size : (integer-in 1 255) |
face : string? |
| family | | : | | (one-of/c 'default 'decorative 'roman 'script | 'swiss 'modern 'symbol 'system) |
|
|
style : (one-of/c 'normal 'italic 'slant) = 'normal |
weight : (one-of/c 'normal 'bold 'light) = 'normal |
underline? : any/c = #f |
| smoothing | | : | | (one-of/c 'default 'partly-smoothed | 'smoothed 'unsmoothed) |
| | = | | 'default |
|
size-in-pixels? : any/c = #f |
When no arguments are provided, creates an instance of the default
font. If no face name is provided, the font is created without a face
name.
See font% for information about family,
style, and weight. font-name-directory<%>.
See also make-font.
Gets the font’s face name, or #f if none is specified.
Gets the font’s family. See
font% for information about
families.
Gets the font’s ID, for use with a
font-name-directory<%>. The ID is determined by the font’s
face and family specifications, only.
Gets the font’s size (roughly the height). Despite the method name,
the size may be in logical units instead of points, depending on the
result of
get-size-in-pixels.
Due to space included in a font by a font designer, a font tends to
generate text that is slightly taller than the nominal size.
Returns
#t if the size reported by
get-point-size is in logical drawing units,
#f if it is in
points.
For a size in points and a screen or bitmap drawing context, the
logical height depends on the resolution of the screen.
Gets the font’s anti-alias smoothing mode. See
font% for
information about smoothing.
Gets the font’s slant style. See
font% for information about
styles.
Returns #t if the font is underlined or #f
otherwise.
Gets the font’s weight. See
font% for information about
weights.
|
c : char |
for-label? : any/c = #f |
Returns #t if the given character has a corresponding glyph
when drawing to the screen or a bitmap, #f otherwise.
If the second argument is true, the result indicates whether the glyph
is available for control labels. Otherwise, it indicates whether the
glyph is available for dc<%> drawing.
For dc<%> drawing, due to automatic font substitution when
drawing or measuring text, the result of this method does not depend
on this font’s attributes (size, face, etc.). The font’s attributes
merely provide a hint for the glyph search.