On this page:
new
get-color
get-gradient
get-handle
get-stipple
get-style
get-transformation
is-immutable?
set-color
set-stipple
set-style

class

brush% : class?

  superclass: object%

A brush is a drawing tool with a color and a style that is used for filling in areas, such as the interior of a rectangle or ellipse. In a monochrome destination, all non-white brushes are drawn as black.

In addition to its color and style, a brush can have a brush stipple bitmap. Painting with a stipple brush is similar to calling draw-bitmap with the stipple bitmap in the filled region.

As an alternative to a color, style, and stipple, a brush can have a gradient that is a linear-gradient% or radial-gradient%. When a brush has a gradient and the target for drawing is not monochrome, then other brush settings are ignored. With a gradient, for each point in a drawing destination, the gradient associates a color to the point based on starting and ending colors and starting and ending lines (for a linear gradient) or circles (for a radial gradient); a gradient-assigned color is applied for each point that is touched when drawing with the brush.

By default, coordinates in a stipple or gradient are transformed by the drawing context’s transformation when the brush is used, but a brush can have its own brush transformation that is used, instead. A brush transformation has the same representation and meaning as for get-transformation in dc<%>.

A brush style is one of the following (but is ignored if the brush has a gradient and the target is not monochrome):

To draw outline shapes (such as unfilled boxes and ellipses), use the 'transparent brush style.

To avoid creating multiple brushes with the same characteristics, use the global brush-list% object the-brush-list, or provide a color and style to set-brush in dc<%>.

See also make-brush.

constructor

(new brush% 
    [[color color] 
    [style style] 
    [stipple stipple] 
    [gradient gradient] 
    [transformation transformation]]) 
  (is-a?/c brush%)
  color : (or/c string? (is-a?/c color%)) = "black"
  style : brush-style/c = 'solid
  stipple : (or/c #f (is-a?/c bitmap%)) = #f
  gradient : 
(or/c #f
      (is-a?/c linear-gradient%)
      (is-a?/c radial-gradient%))
 = #f
  transformation : 
(or/c #f (vector/c (vector/c real? real? real?
                             real? real? real?)
                    real? real? real? real? real?))
   = #f
Creates a brush with the given color, brush style, brush stipple, gradient, and brush transformation (which is kept only if the gradient or stipple is non-#f). For the case that the color is specified using a name, see color-database<%> for information about color names; if the name is not known, the brush’s color is black.

method

(send a-brush get-color)  (is-a?/c color%)

Returns the brush’s color.

method

(send a-brush get-gradient)  
(or/c (is-a?/c linear-gradient%)
      (is-a?/c radial-gradient%)
      #f)
Gets the gradient, or #f if the brush has no gradient.

method

(send a-brush get-handle)  (or/c cpointer? #f)

Returns a low-level handle for the brush content, but only for brushes created with make-handle-brush; otherwise, the result is #f.

method

(send a-brush get-stipple)  (or/c (is-a?/c bitmap%) #f)

Gets the brush stipple bitmap, or #f if the brush has no stipple.

method

(send a-brush get-style)  brush-style/c

Returns the brush style. See brush% for information about brush styles.

method

(send a-brush get-transformation)

  
(or/c #f (vector/c (vector/c real? real? real? real? real? real?)
                   real? real? real? real? real?))
Returns the brush’s brush transformation, if any.

If a brush with a stipple or gradient also has a transformation, then the transformation applies to the stipple or gradient’s coordinates instead of the target drawing context’s transformation; otherwise, the target drawing context’s transformation applies to stipple and gradient coordinates.

method

(send a-brush is-immutable?)  boolean?

Returns #t if the brush object is immutable.

method

(send a-brush set-color color)  void?

  color : (is-a?/c color%)
(send a-brush set-color color-name)  void?
  color-name : string?
(send a-brush set-color red green blue)  void?
  red : byte?
  green : byte?
  blue : byte?
Sets the brush’s color. A brush cannot be modified if it was obtained from a brush-list% or while it is selected into a drawing context.

For the case that the color is specified using a string, see color-database<%> for information about color names.

method

(send a-brush set-stipple bitmap    
  [transformation])  void?
  bitmap : (or/c (is-a?/c bitmap%) #f)
  transformation : 
(or/c #f (vector/c (vector/c real? real? real?
                             real? real? real?)
                    real? real? real? real? real?))
   = #f
Sets or removes the brush stipple bitmap, where #f removes the stipple. The brush transformation is set at the same time to transformation. See brush% for information about drawing with stipples.

If bitmap is modified while is associated with a brush, the effect on the brush is unspecified. A brush cannot be modified if it was obtained from a brush-list% or while it is selected into a drawing context.

method

(send a-brush set-style style)  void?

  style : brush-style/c
Sets the brush style. See brush% for information about the possible styles.

A brush cannot be modified if it was obtained from a brush-list% or while it is selected into a drawing context.