wxGraphicsContext (wx v2.5.4)

Copy Markdown View Source

A wxGraphicsContext instance is the object that is drawn upon.

It is created by a renderer using wxGraphicsRenderer:createContext/2. This can be either directly using a renderer instance, or indirectly using the static convenience create/1 functions of wxGraphicsContext that always delegate the task to the default renderer.

Remark: For some renderers (like Direct2D or Cairo) processing of drawing operations may be deferred (Direct2D render target normally builds up a batch of rendering commands but defers processing of these commands, Cairo operates on a separate surface) so to make drawing results visible you need to update the content of the context by calling wxGraphicsContext::Flush() (not implemented in wx) or by destroying the context.

See:

This class is derived, and can use functions, from:

wxWidgets docs: wxGraphicsContext

Summary

Functions

Sets the clipping region to the intersection of the given region and the previously set clipping region.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Concatenates the passed in transform with the current transform of this context.

Create a lightweight context that can be used only for measuring text.

Creates a native brush from a wxBrush.

Creates a native graphics font from a wxFont and a text colour.

Creates a font object with the specified attributes.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Creates a native brush with a linear gradient. The brush starts at (@a x1, @a y1) and ends at (@a x2, @a y2). Either just the start and end gradient colours (@a c1 and @a c2) or full set of gradient @a stops can be specified. The version taking wxGraphicsGradientStops is new in wxWidgets 2.9.1. The matrix parameter was added in wxWidgets 3.1.3

Creates a native affine transformation matrix from the passed in values.

Creates a native graphics path which is initially empty.

Creates a native pen from a wxPen.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Creates a native brush with a radial gradient. The brush originates at (@a startX, @a startY) and ends on a circle around (@a endX, @a endY) with the given @a radius. The gradient may be specified either by its start and end colours @a oColor and @a cColor or by a full set of gradient @a stops. The version taking wxGraphicsGradientStops is new in wxWidgets 2.9.1. The ability to apply a transformation matrix to the gradient was added in 3.1.3

Destroys the object

Draws an ellipse.

Draws a polygon.

Draws the path by first filling and then stroking.

Draws a rectangle.

Draws text at the defined position.

Draws text at the defined position.

Draws text at the defined position.

Fills the path with the current brush.

Fills the widths array with the widths from the beginning of text to the corresponding character of text.

Gets the dimensions of the string using the currently selected font.

Gets the current transformation matrix of this context.

Resets the clipping to original shape.

Rotates the current transformation matrix (in radians).

Scales the current transformation matrix.

Sets the brush for filling paths.

Sets the font for drawing text.

Sets the font for drawing text.

Sets the pen used for stroking.

Sets the current transformation matrix of this context.

Strokes a single line.

Stroke lines connecting all the points.

Strokes along a path with the current pen.

Translates the current transformation matrix.

Types

wxGraphicsContext()

-type wxGraphicsContext() :: wx:wx_object().

Functions

clip(This :: wxGraphicsContext(), Region :: wxRegion:wxRegion()) -> ok

Sets the clipping region to the intersection of the given region and the previously set clipping region.

The clipping region is an area to which drawing is restricted.

Remark:

  • Clipping region should be given in logical coordinates.

  • Calling this function can only make the clipping region smaller, never larger.

  • You need to call resetClip/1 first if you want to set the clipping region exactly to the region specified.

  • If resulting clipping region is empty, then all drawing upon the context is clipped out (all changes made by drawing operations are masked out).

clip(This, X, Y, W, H) -> ok

Types

This = wxGraphicsContext()
X = Y = W = H = number()

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

concatTransform(This, Matrix) -> ok

Concatenates the passed in transform with the current transform of this context.

create() -> wxGraphicsContext()

Create a lightweight context that can be used only for measuring text.

create(WindowDC) -> wxGraphicsContext()

Creates a wxGraphicsContext from a wxWindowDC.

See: wxGraphicsRenderer:createContext/2

createBrush(This, Brush) -> Result

Creates a native brush from a wxBrush.

createFont(This, Font) ≡ createFont(This, Font, [])

createFont/3

-spec createFont(This, Font) -> wxGraphicsFont:wxGraphicsFont()
                    when This :: wxGraphicsContext(), Font :: wxFont:wxFont().
-spec createFont(This, SizeInPixels, Facename) -> wxGraphicsFont:wxGraphicsFont()
                    when
                        This :: wxGraphicsContext(),
                        SizeInPixels :: number(),
                        Facename :: unicode:chardata();
                (This, Font, [Option]) -> wxGraphicsFont:wxGraphicsFont()
                    when
                        This :: wxGraphicsContext(),
                        Font :: wxFont:wxFont(),
                        Option :: {col, wx:wx_colour()}.

Creates a native graphics font from a wxFont and a text colour.

Remark: For Direct2D graphics fonts can be created from TrueType fonts only.

createFont/4

-spec createFont(This, SizeInPixels, Facename, [Option]) -> wxGraphicsFont:wxGraphicsFont()
                    when
                        This :: wxGraphicsContext(),
                        SizeInPixels :: number(),
                        Facename :: unicode:chardata(),
                        Option :: {flags, integer()} | {col, wx:wx_colour()}.

Creates a font object with the specified attributes.

The use of overload taking wxFont is preferred, see wxGraphicsRenderer:createFont/4 for more details.

Remark: For Direct2D graphics fonts can be created from TrueType fonts only.

Since: 2.9.3

createLinearGradientBrush(This, X1, Y1, X2, Y2, Stops) -> Result

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

createLinearGradientBrush(This, X1, Y1, X2, Y2, C1, C2) -> Result

Types

This = wxGraphicsContext()
X1 = Y1 = X2 = Y2 = number()
C1 = C2 = wx:wx_colour()
Result = wxGraphicsBrush:wxGraphicsBrush()

Creates a native brush with a linear gradient. The brush starts at (@a x1, @a y1) and ends at (@a x2, @a y2). Either just the start and end gradient colours (@a c1 and @a c2) or full set of gradient @a stops can be specified. The version taking wxGraphicsGradientStops is new in wxWidgets 2.9.1. The matrix parameter was added in wxWidgets 3.1.3

createMatrix(This) ≡ createMatrix(This, [])

createMatrix/2

-spec createMatrix(This) -> wxGraphicsMatrix:wxGraphicsMatrix() when This :: wxGraphicsContext().
-spec createMatrix(This, [Option]) -> wxGraphicsMatrix:wxGraphicsMatrix()
                      when
                          This :: wxGraphicsContext(),
                          Option ::
                              {a, number()} |
                              {b, number()} |
                              {c, number()} |
                              {d, number()} |
                              {tx, number()} |
                              {ty, number()}.

Creates a native affine transformation matrix from the passed in values.

The default parameters result in an identity matrix.

createPath(This :: wxGraphicsContext()) -> Result

Creates a native graphics path which is initially empty.

createPen(This, Pen) -> Result

Types

This = wxGraphicsContext()
Pen = wxPen:wxPen()
Result = wxGraphicsPen:wxGraphicsPen()

Creates a native pen from a wxPen.

Prefer to use the overload taking wxGraphicsPenInfo (not implemented in wx) unless you already have a wxPen as constructing one only to pass it to this method is wasteful.

createRadialGradientBrush(This, StartX, StartY, EndX, EndY, Radius, Stops) -> Result

Types

This = wxGraphicsContext()
StartX = StartY = EndX = EndY = Radius = number()
Stops = wxGraphicsGradientStops:wxGraphicsGradientStops()
Result = wxGraphicsBrush:wxGraphicsBrush()

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

createRadialGradientBrush(This, StartX, StartY, EndX, EndY, Radius, OColor, CColor) -> Result

Types

This = wxGraphicsContext()
StartX = StartY = EndX = EndY = Radius = number()
OColor = CColor = wx:wx_colour()
Result = wxGraphicsBrush:wxGraphicsBrush()

Creates a native brush with a radial gradient. The brush originates at (@a startX, @a startY) and ends on a circle around (@a endX, @a endY) with the given @a radius. The gradient may be specified either by its start and end colours @a oColor and @a cColor or by a full set of gradient @a stops. The version taking wxGraphicsGradientStops is new in wxWidgets 2.9.1. The ability to apply a transformation matrix to the gradient was added in 3.1.3

destroy(This :: wxGraphicsContext()) -> ok

Destroys the object

drawBitmap(This, Bmp, X, Y, W, H) -> ok

Types

This = wxGraphicsContext()
Bmp = wxBitmap:wxBitmap()
X = Y = W = H = number()

Draws the bitmap.

In case of a mono bitmap, this is treated as a mask and the current brushed is used for filling.

drawEllipse(This, X, Y, W, H) -> ok

Types

This = wxGraphicsContext()
X = Y = W = H = number()

Draws an ellipse.

drawIcon(This, Icon, X, Y, W, H) -> ok

Types

This = wxGraphicsContext()
Icon = wxIcon:wxIcon()
X = Y = W = H = number()

Draws the icon.

drawLines(This, Points) ≡ drawLines(This, Points, [])

drawLines/3

-spec drawLines(This, Points) -> ok
                   when This :: wxGraphicsContext(), Points :: [{X :: float(), Y :: float()}].
-spec drawLines(This, Points, [Option]) -> ok
                   when
                       This :: wxGraphicsContext(),
                       Points :: [{X :: float(), Y :: float()}],
                       Option :: {fillStyle, wx:wx_enum()}.

Draws a polygon.

drawPath(This, Path) ≡ drawPath(This, Path, [])

drawPath/3

-spec drawPath(This, Path) -> ok
                  when This :: wxGraphicsContext(), Path :: wxGraphicsPath:wxGraphicsPath().
-spec drawPath(This, Path, [Option]) -> ok
                  when
                      This :: wxGraphicsContext(),
                      Path :: wxGraphicsPath:wxGraphicsPath(),
                      Option :: {fillStyle, wx:wx_enum()}.

Draws the path by first filling and then stroking.

drawRectangle(This, X, Y, W, H) -> ok

Types

This = wxGraphicsContext()
X = Y = W = H = number()

Draws a rectangle.

drawRoundedRectangle(This, X, Y, W, H, Radius) -> ok

Types

This = wxGraphicsContext()
X = Y = W = H = Radius = number()

Draws a rounded rectangle.

drawText(This, Str, X, Y) -> ok

Types

This = wxGraphicsContext()
Str = unicode:chardata()
X = Y = number()

Draws text at the defined position.

drawText/5

-spec drawText(This, Str, X, Y, Angle) -> ok
                  when
                      This :: wxGraphicsContext(),
                      Str :: unicode:chardata(),
                      X :: number(),
                      Y :: number(),
                      Angle :: number();
              (This, Str, X, Y, BackgroundBrush) -> ok
                  when
                      This :: wxGraphicsContext(),
                      Str :: unicode:chardata(),
                      X :: number(),
                      Y :: number(),
                      BackgroundBrush :: wxGraphicsBrush:wxGraphicsBrush().

Draws text at the defined position.

drawText(This, Str, X, Y, Angle, BackgroundBrush) -> ok

Types

This = wxGraphicsContext()
Str = unicode:chardata()
X = Y = Angle = number()
BackgroundBrush = wxGraphicsBrush:wxGraphicsBrush()

Draws text at the defined position.

fillPath(This, Path) ≡ fillPath(This, Path, [])

fillPath/3

-spec fillPath(This, Path) -> ok
                  when This :: wxGraphicsContext(), Path :: wxGraphicsPath:wxGraphicsPath().
-spec fillPath(This, Path, [Option]) -> ok
                  when
                      This :: wxGraphicsContext(),
                      Path :: wxGraphicsPath:wxGraphicsPath(),
                      Option :: {fillStyle, wx:wx_enum()}.

Fills the path with the current brush.

getPartialTextExtents(This, Text) -> [number()]

Types

This = wxGraphicsContext()
Text = unicode:chardata()

Fills the widths array with the widths from the beginning of text to the corresponding character of text.

getTextExtent(This :: wxGraphicsContext(), Text :: unicode:chardata()) -> Result

Types

Result = {Width :: number(), Height :: number(), Descent :: number(), ExternalLeading :: number()}

Gets the dimensions of the string using the currently selected font.

getTransform(This :: wxGraphicsContext()) -> Result

Gets the current transformation matrix of this context.

resetClip(This :: wxGraphicsContext()) -> ok

Resets the clipping to original shape.

rotate(This :: wxGraphicsContext(), Angle :: number()) -> ok

Rotates the current transformation matrix (in radians).

scale(This :: wxGraphicsContext(), XScale :: number(), YScale :: number()) -> ok

Types

XScale = YScale = number()

Scales the current transformation matrix.

setBrush(This, Brush) -> ok

Sets the brush for filling paths.

setFont(This, Font) -> ok

Sets the font for drawing text.

setFont(This, Font, Colour) -> ok

Types

This = wxGraphicsContext()
Font = wxFont:wxFont()
Colour = wx:wx_colour()

Sets the font for drawing text.

Remark: For Direct2D only TrueType fonts can be used.

setPen(This, Pen) -> ok

Sets the pen used for stroking.

setTransform(This, Matrix) -> ok

Sets the current transformation matrix of this context.

strokeLine(This, X1, Y1, X2, Y2) -> ok

Types

This = wxGraphicsContext()
X1 = Y1 = X2 = Y2 = number()

Strokes a single line.

strokeLines(This, Points) -> ok

Types

This = wxGraphicsContext()
Points = [{X :: float(), Y :: float()}]

Stroke lines connecting all the points.

Unlike the other overload of this function, this method draws a single polyline and not a number of disconnected lines.

strokePath(This, Path) -> ok

Strokes along a path with the current pen.

translate(This :: wxGraphicsContext(), Dx :: number(), Dy :: number()) -> ok

Types

Dx = Dy = number()

Translates the current transformation matrix.