2.3 Drawing Classes
2.3.1 bitmap%
2.3.2 bitmap-dc%
2.3.3 brush%
2.3.4 brush-list%
2.3.5 color%
2.3.6 color-database<%>
2.3.7 dc<%>
2.3.8 dc-path%
2.3.9 font%
2.3.10 font-list%
2.3.11 font-name-directory<%>
2.3.12 gl-config%
2.3.13 gl-context<%>
2.3.14 pen%
2.3.15 pen-list%
2.3.16 point%
2.3.17 post-script-dc%
2.3.18 printer-dc%
2.3.19 ps-setup%
2.3.20 region%
On this page:
get-face
get-family
get-font-id
get-point-size
get-size-in-pixels
get-smoothing
get-style
get-underlined
get-weight
screen-glyph-exists?

font% : class?

  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:

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%)
(make-object font% size    
  family    
  [style    
  weight    
  underline?    
  smoothing    
  size-in-pixels?])  (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
(make-object font% size    
  face    
  family    
  [style    
  weight    
  underline?    
  smoothing    
  size-in-pixels?])  (is-a?/c font%)
  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. 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<%>.

(send a-font get-face)  (or/c string? false/c)
Gets the font’s face name, or #f if none is specified.

(send a-font get-family)
  
(one-of/c 'default 'decorative 'roman 'script
          'swiss 'modern 'symbol 'system)
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.

(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.

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.

(send a-font get-style)  (one-of/c 'normal 'italic 'slant)
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.

(send a-font screen-glyph-exists? c    
  [for-label?])  boolean?
  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? .