On this page:
find-or-create-pen

pen-list% : class?

  superclass: object%

A pen-list% object maintains a list of pen% objects to avoid repeatedly creating pen objects. A pen% object in a pen list cannot be mutated.

A global pen list the-pen-list is created automatically.

Creates an empty pen list.

(send a-pen-list find-or-create-pen color    
  width    
  style    
  [cap    
  join])  (is-a?/c pen%)
  color : (is-a?/c color%)
  width : (real-in 0 255)
  style : 
(one-of/c 'transparent 'solid 'xor 'hilite
          'dot 'long-dash 'short-dash 'dot-dash
          'xor-dot 'xor-long-dash 'xor-short-dash
          'xor-dot-dash)
  cap : (one-of/c 'round 'projecting 'butt) = 'round
  join : (one-of/c 'round 'bevel 'miter) = 'round
(send a-pen-list find-or-create-pen color-name 
  width 
  style 
  [cap 
  join]) 
  (or/c (is-a?/c pen%) false/c)
  color-name : string?
  width : (real-in 0 255)
  style : 
(one-of/c 'transparent 'solid 'xor 'hilite
          'dot 'long-dash 'short-dash 'dot-dash
          'xor-dot 'xor-long-dash 'xor-short-dash
          'xor-dot-dash)
  cap : (one-of/c 'round 'projecting 'butt) = 'round
  join : (one-of/c 'round 'bevel 'miter) = 'round
Finds a pen of the given specification, or creates one and adds it to the list. The arguments are the same as for creating a pen% instance plus a cap and join style as for set-cap and set-join. When color-name is provided, however, the return value is #f when no color matching color-name can be found in the-color-database.