superclass: object% |
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:
The 'modern designation is special under Mac OS X and X with fontconfig/Xft; characters in the ASCII range 0-255 are converted to Unicode characters that match Adobe symbols. For example, a is converted to α.
face – A string face name, such as "Courier" (under Windows and Mac OS X), "-*-courier" (under X), or " Luxi Sans" (under X with fontconfig/Xft; note the leading space). 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:
weight – The weight of the font, one of:
underline? – #t for underlined, #f for plain.
smoothing – Amount of anti-alias smoothing, one of:
'partly-smoothed (Windows: TrueType when available; Mac OS X: 4-bit, pixel-aligned smoothing; X: fontconfig/Xft when available)
'smoothed (Windows: ClearType when available, XP and up; Mac OS X: Quartz smoothing; X: fontconfig/Xft when available)
Special case: 'default corresponds to 'partly-smoothed when used with the 'modern family and a font size between 9 and 13 (inclusive).
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) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
style : (one-of/c 'normal 'italic 'slant) = 'normal | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
weight : (one-of/c 'normal 'bold 'light) = 'normal | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
underline? : any/c = #f | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
size-in-pixels? : any/c = #f | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
size : (integer-in 1 255) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
face : string? | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
style : (one-of/c 'normal 'italic 'slant) = 'normal | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
weight : (one-of/c 'normal 'bold 'light) = 'normal | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
underline? : any/c = #f | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. Otherwise, see font-name-directory<%> for information about the way face is interpreted for drawing text on various platforms and devices; when a platform- or device-specific interpretation of face is not available, the family is used to draw text.
See font% for information about family, style, and weight. font-name-directory<%>.
Gets the font’s face name, or #f if none is specified.
(send a-font get-family) | ||||||
|
Gets the font’s family. See font% for information about families.
(send a-font get-font-id) → (and/c exact? integer?) |
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.
(send a-font get-point-size) → (integer-in 1 255) |
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.
(send a-font get-size-in-pixels) → boolean? |
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.
(send a-font get-smoothing) |
→ (one-of/c 'default 'partly-smoothed 'smoothed 'unsmoothed) |
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.
(send a-font get-underlined) → boolean? |
Returns #t if the font is underlined or #f otherwise.
(send a-font get-weight) → (one-of/c 'normal 'bold 'light) |
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.
See also glyph-exists? .