Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

wxDC (3erl)

Name

wxDC - Functions for wxDC class

Synopsis

Please see following description for synopsis

Description

wxDC(3)                    Erlang Module Definition                    wxDC(3)



NAME
       wxDC - Functions for wxDC class

DESCRIPTION
       A wxDC is a "device context" onto which graphics and text can be drawn.
       It is intended to represent different output devices and offers a  com-
       mon abstract API for drawing on any of them.

       wxWidgets offers an alternative drawing API based on the modern drawing
       backends GDI+, CoreGraphics, Cairo and Direct2D. See wxGraphicsContext,
       wxGraphicsRenderer  and related classes. There is also a wxGCDC linking
       the APIs by offering the wxDC API on top of a wxGraphicsContext.

       wxDC is an abstract base class and  cannot  be  created  directly.  Use
       wxPaintDC,  wxClientDC,  wxWindowDC, wxScreenDC, wxMemoryDC or wxPrint-
       erDC (not implemented in wx). Notice that  device  contexts  which  are
       associated with windows (i.e. wxClientDC, wxWindowDC and wxPaintDC) use
       the window font and colours by default (starting with wxWidgets  2.9.0)
       but  the  other device context classes use system-default values so you
       always must set the appropriate fonts and colours before using them.

       In addition to the versions of the methods documented below, there  are
       also  versions  which  accept single {X,Y} parameter instead of the two
       wxCoord ones or {X,Y} and {Width,Height} instead of  the  four  wxCoord
       parameters.

       Beginning  with  wxWidgets  2.9.0 the entire wxDC code has been reorga-
       nized. All platform dependent code (actually all drawing code) has been
       moved  into  backend classes which derive from a common wxDCImpl class.
       The user-visible classes such as wxClientDC and wxPaintDC  merely  for-
       ward all calls to the backend implementation.

       Device and logical units

       In  the  wxDC  context there is a distinction between logical units and
       device units.

       Device units are the units native to the particular device; e.g. for  a
       screen,  a  device  unit  is a pixel. For a printer, the device unit is
       defined by the resolution of the printer (usually given  in  DPI:  dot-
       per-inch).

       All  wxDC  functions use instead logical units, unless where explicitly
       stated. Logical units are arbitrary units mapped to device units  using
       the current mapping mode (see setMapMode/2).

       This mechanism allows reusing the same code which prints on e.g. a win-
       dow on the screen to print on e.g. a paper.

       Support for Transparency / Alpha Channel

       In general wxDC methods don't support alpha transparency and the  alpha
       component  of wx_color() is simply ignored and you need to use wxGraph-
       icsContext for full transparency support. There  are,  however,  a  few
       exceptions:  first,  under  macOS and GTK+ 3 colours with alpha channel
       are supported in all  the  normal  wxDC-derived  classes  as  they  use
       wxGraphicsContext  internally.  Second, under all platforms wxSVGFileDC
       (not implemented in wx) also fully supports alpha channel. In  both  of
       these  cases  the  instances  of  wxPen  or wxBrush that are built from
       wx_color() use the colour's alpha values when stroking or filling.

       Support for Transformation Matrix

       On some platforms (currently under MSW, GTK+ 3, macOS) wxDC has support
       for  applying  an arbitrary affine transformation matrix to its coordi-
       nate system (since 3.1.1 this feature is also supported  by  wxGCDC  in
       all  ports).  Call  CanUseTransformMatrix()  (not implemented in wx) to
       check if this support is available and then  call  SetTransformMatrix()
       (not  implemented  in wx) if it is. If the transformation matrix is not
       supported, SetTransformMatrix() (not implemented in wx)  always  simply
       returns false and doesn't do anything.

       This  feature  is  only  available when wxUSE_DC_TRANSFORM_MATRIX build
       option is enabled.

       See: Overview dc, wxGraphicsContext, wxDCFontChanger  (not  implemented
       in  wx),  wxDCTextColourChanger (not implemented in wx), wxDCPenChanger
       (not implemented in wx), wxDCBrushChanger (not implemented in wx), wxD-
       CClipper (not implemented in wx)

       wxWidgets docs: wxDC

DATA TYPES
       wxDC() = wx:wx_object()

EXPORTS
       blit(This, Dest, Size, Source, Src) -> boolean()

              Types:

                 This = wxDC()
                 Dest = {X :: integer(), Y :: integer()}
                 Size = {W :: integer(), H :: integer()}
                 Source = wxDC()
                 Src = {X :: integer(), Y :: integer()}

       blit(This, Dest, Size, Source, Src, Options :: [Option]) ->
               boolean()

              Types:

                 This = wxDC()
                 Dest = {X :: integer(), Y :: integer()}
                 Size = {W :: integer(), H :: integer()}
                 Source = wxDC()
                 Src = {X :: integer(), Y :: integer()}
                 Option =
                     {rop, wx:wx_enum()} |
                     {useMask, boolean()} |
                     {srcPtMask, {X :: integer(), Y :: integer()}}

              Copy from a source DC to this DC.

              With this method you can specify the destination coordinates and
              the size of area to copy which will be the  same  for  both  the
              source  and target DCs. If you need to apply scaling while copy-
              ing, use StretchBlit() (not implemented in wx).

              Notice that source DC coordinates xsrc and ysrc are  interpreted
              using  the  current source DC coordinate system, i.e. the scale,
              origin position and axis directions are taken into account  when
              transforming them to physical (pixel) coordinates.

              Remark:  There  is partial support for blit/6 in wxPostScriptDC,
              under X.

              See:  StretchBlit()  (not  implemented   in   wx),   wxMemoryDC,
              wxBitmap, wxMask

       calcBoundingBox(This, X, Y) -> ok

              Types:

                 This = wxDC()
                 X = Y = integer()

              Adds  the  specified  point  to  the  bounding  box which can be
              retrieved with minX/1, maxX/1 and minY/1, maxY/1 functions.

              See: resetBoundingBox/1

       clear(This) -> ok

              Types:

                 This = wxDC()

              Clears the device context using the current background brush.

              Note that setBackground/2 method must be used to set  the  brush
              used  by  clear/1,  the brush used for filling the shapes set by
              setBrush/2 is ignored by it.

              If no background brush was set, solid white  brush  is  used  to
              clear the device context.

       crossHair(This, Pt) -> ok

              Types:

                 This = wxDC()
                 Pt = {X :: integer(), Y :: integer()}

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

       destroyClippingRegion(This) -> ok

              Types:

                 This = wxDC()

              Destroys  the  current clipping region so that none of the DC is
              clipped.

              See: setClippingRegion/3

       deviceToLogicalX(This, X) -> integer()

              Types:

                 This = wxDC()
                 X = integer()

              Convert device X coordinate to  logical  coordinate,  using  the
              current  mapping mode, user scale factor, device origin and axis
              orientation.

       deviceToLogicalXRel(This, X) -> integer()

              Types:

                 This = wxDC()
                 X = integer()

              Convert device X  coordinate  to  relative  logical  coordinate,
              using  the current mapping mode and user scale factor but ignor-
              ing the axis orientation.

              Use this for converting a width, for example.

       deviceToLogicalY(This, Y) -> integer()

              Types:

                 This = wxDC()
                 Y = integer()

              Converts device Y coordinate to logical  coordinate,  using  the
              current  mapping mode, user scale factor, device origin and axis
              orientation.

       deviceToLogicalYRel(This, Y) -> integer()

              Types:

                 This = wxDC()
                 Y = integer()

              Convert device Y  coordinate  to  relative  logical  coordinate,
              using  the current mapping mode and user scale factor but ignor-
              ing the axis orientation.

              Use this for converting a height, for example.

       drawArc(This, PtStart, PtEnd, Centre) -> ok

              Types:

                 This = wxDC()
                 PtStart = PtEnd = Centre = {X :: integer(), Y :: integer()}

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

       drawBitmap(This, Bmp, Pt) -> ok

              Types:

                 This = wxDC()
                 Bmp = wxBitmap:wxBitmap()
                 Pt = {X :: integer(), Y :: integer()}

       drawBitmap(This, Bmp, Pt, Options :: [Option]) -> ok

              Types:

                 This = wxDC()
                 Bmp = wxBitmap:wxBitmap()
                 Pt = {X :: integer(), Y :: integer()}
                 Option = {useMask, boolean()}

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

       drawCheckMark(This, Rect) -> ok

              Types:

                 This = wxDC()
                 Rect =
                     {X :: integer(),
                      Y :: integer(),
                      W :: integer(),
                      H :: integer()}

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

       drawCircle(This, Pt, Radius) -> ok

              Types:

                 This = wxDC()
                 Pt = {X :: integer(), Y :: integer()}
                 Radius = integer()

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

       drawEllipse(This, Rect) -> ok

              Types:

                 This = wxDC()
                 Rect =
                     {X :: integer(),
                      Y :: integer(),
                      W :: integer(),
                      H :: integer()}

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

       drawEllipse(This, Pt, Size) -> ok

              Types:

                 This = wxDC()
                 Pt = {X :: integer(), Y :: integer()}
                 Size = {W :: integer(), H :: integer()}

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

       drawEllipticArc(This, Pt, Sz, Sa, Ea) -> ok

              Types:

                 This = wxDC()
                 Pt = {X :: integer(), Y :: integer()}
                 Sz = {W :: integer(), H :: integer()}
                 Sa = Ea = number()

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

       drawIcon(This, Icon, Pt) -> ok

              Types:

                 This = wxDC()
                 Icon = wxIcon:wxIcon()
                 Pt = {X :: integer(), Y :: integer()}

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

       drawLabel(This, Text, Rect) -> ok

              Types:

                 This = wxDC()
                 Text = unicode:chardata()
                 Rect =
                     {X :: integer(),
                      Y :: integer(),
                      W :: integer(),
                      H :: integer()}

       drawLabel(This, Text, Rect, Options :: [Option]) -> ok

              Types:

                 This = wxDC()
                 Text = unicode:chardata()
                 Rect =
                     {X :: integer(),
                      Y :: integer(),
                      W :: integer(),
                      H :: integer()}
                 Option = {alignment, integer()} | {indexAccel, integer()}

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

       drawLine(This, Pt1, Pt2) -> ok

              Types:

                 This = wxDC()
                 Pt1 = Pt2 = {X :: integer(), Y :: integer()}

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

       drawLines(This, Points) -> ok

              Types:

                 This = wxDC()
                 Points = [{X :: integer(), Y :: integer()}]

       drawLines(This, Points, Options :: [Option]) -> ok

              Types:

                 This = wxDC()
                 Points = [{X :: integer(), Y :: integer()}]
                 Option = {xoffset, integer()} | {yoffset, integer()}

              Draws lines using an array  of  points  of  size  n  adding  the
              optional offset coordinate.

              The current pen is used for drawing the lines.

       drawPolygon(This, Points) -> ok

              Types:

                 This = wxDC()
                 Points = [{X :: integer(), Y :: integer()}]

       drawPolygon(This, Points, Options :: [Option]) -> ok

              Types:

                 This = wxDC()
                 Points = [{X :: integer(), Y :: integer()}]
                 Option =
                     {xoffset, integer()} |
                     {yoffset, integer()} |
                     {fillStyle, wx:wx_enum()}

              Draws  a  filled  polygon  using  an  array of points of size n,
              adding the optional offset coordinate.

              The first and last points are automatically closed.

              The last argument specifies the fill rule:  wxODDEVEN_RULE  (the
              default) or wxWINDING_RULE.

              The current pen is used for drawing the outline, and the current
              brush for filling the shape.  Using  a  transparent  brush  sup-
              presses filling.

       drawPoint(This, Pt) -> ok

              Types:

                 This = wxDC()
                 Pt = {X :: integer(), Y :: integer()}

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

       drawRectangle(This, Rect) -> ok

              Types:

                 This = wxDC()
                 Rect =
                     {X :: integer(),
                      Y :: integer(),
                      W :: integer(),
                      H :: integer()}

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

       drawRectangle(This, Pt, Sz) -> ok

              Types:

                 This = wxDC()
                 Pt = {X :: integer(), Y :: integer()}
                 Sz = {W :: integer(), H :: integer()}

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

       drawRotatedText(This, Text, Point, Angle) -> ok

              Types:

                 This = wxDC()
                 Text = unicode:chardata()
                 Point = {X :: integer(), Y :: integer()}
                 Angle = number()

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

       drawRoundedRectangle(This, Rect, Radius) -> ok

              Types:

                 This = wxDC()
                 Rect =
                     {X :: integer(),
                      Y :: integer(),
                      W :: integer(),
                      H :: integer()}
                 Radius = number()

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

       drawRoundedRectangle(This, Pt, Sz, Radius) -> ok

              Types:

                 This = wxDC()
                 Pt = {X :: integer(), Y :: integer()}
                 Sz = {W :: integer(), H :: integer()}
                 Radius = number()

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

       drawText(This, Text, Pt) -> ok

              Types:

                 This = wxDC()
                 Text = unicode:chardata()
                 Pt = {X :: integer(), Y :: integer()}

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

       endDoc(This) -> ok

              Types:

                 This = wxDC()

              Ends a document (only relevant when outputting to a printer).

       endPage(This) -> ok

              Types:

                 This = wxDC()

              Ends  a  document  page  (only  relevant  when  outputting  to a
              printer).

       floodFill(This, Pt, Col) -> boolean()

              Types:

                 This = wxDC()
                 Pt = {X :: integer(), Y :: integer()}
                 Col = wx:wx_colour()

       floodFill(This, Pt, Col, Options :: [Option]) -> boolean()

              Types:

                 This = wxDC()
                 Pt = {X :: integer(), Y :: integer()}
                 Col = wx:wx_colour()
                 Option = {style, wx:wx_enum()}

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

       getBackground(This) -> wxBrush:wxBrush()

              Types:

                 This = wxDC()

              Gets the brush used for painting the background.

              See: setBackground/2

       getBackgroundMode(This) -> integer()

              Types:

                 This = wxDC()

              Returns the current background mode: wxPENSTYLE_SOLID or  wxPEN-
              STYLE_TRANSPARENT.

              See: setBackgroundMode/2

       getBrush(This) -> wxBrush:wxBrush()

              Types:

                 This = wxDC()

              Gets the current brush.

              See: setBrush/2

       getCharHeight(This) -> integer()

              Types:

                 This = wxDC()

              Gets the character height of the currently set font.

       getCharWidth(This) -> integer()

              Types:

                 This = wxDC()

              Gets the average character width of the currently set font.

       getClippingBox(This) -> Result

              Types:

                 Result =
                     {X :: integer(),
                      Y :: integer(),
                      Width :: integer(),
                      Height :: integer()}
                 This = wxDC()

               Gets  the rectangle surrounding the current clipping region. If
              no clipping region is set this function returns  the  extent  of
              the device context. @remarks Clipping region is given in logical
              coordinates. @param x If non-<span  class='literal'>NULL</span>,
              filled in with the logical horizontal coordinate of the top left
              corner of the clipping region if the function returns true or  0
              otherwise.  @param  y  If non-<span class='literal'>NULL</span>,
              filled in with the logical vertical coordinate of the  top  left
              corner  of the clipping region if the function returns true or 0
              otherwise.    @param    width    If    non-<span     class='lit-
              eral'>NULL</span>,  filled  in  with  the  width of the clipping
              region if the function returns true or the device context  width
              otherwise.    @param    height    If    non-<span    class='lit-
              eral'>NULL</span>, filled in with the  height  of  the  clipping
              region if the function returns true or the device context height
              otherwise.

              Return: true if there is a clipping region or false if there  is
              no active clipping region (note that this return value is avail-
              able only since wxWidgets 3.1.2,  this  function  didn't  return
              anything in the previous versions).

       getFont(This) -> wxFont:wxFont()

              Types:

                 This = wxDC()

              Gets the current font.

              Notice  that  even  although each device context object has some
              default font after creation, this method would return a ?wxNull-
              Font  initially and only after calling setFont/2 a valid font is
              returned.

       getLayoutDirection(This) -> wx:wx_enum()

              Types:

                 This = wxDC()

              Gets the current layout direction of the device context.

              On platforms where RTL layout is  supported,  the  return  value
              will  either be wxLayout_LeftToRight or wxLayout_RightToLeft. If
              RTL layout is not supported, the return  value  will  be  wxLay-
              out_Default.

              See: setLayoutDirection/2

       getLogicalFunction(This) -> wx:wx_enum()

              Types:

                 This = wxDC()

              Gets the current logical function.

              See: setLogicalFunction/2

       getMapMode(This) -> wx:wx_enum()

              Types:

                 This = wxDC()

              Gets the current mapping mode for the device context.

              See: setMapMode/2

       getMultiLineTextExtent(This, String) ->
                                 {W :: integer(), H :: integer()}

              Types:

                 This = wxDC()
                 String = unicode:chardata()

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

              string is the text string to measure.

              Return: The text extent as a {Width,Height} object.

              Note: This function works with both single-line  and  multi-line
              strings.

              See: wxFont, setFont/2, getPartialTextExtents/2, getTextExtent/3

       getMultiLineTextExtent(This, String, Options :: [Option]) ->
                                 {W :: integer(),
                                  H :: integer(),
                                  HeightLine :: integer()}

              Types:

                 This = wxDC()
                 String = unicode:chardata()
                 Option = {font, wxFont:wxFont()}

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

              string is the text string to measure, heightLine, if  non  NULL,
              is where to store the height of a single line.

              The text extent is set in the given w and h pointers.

              If  the  optional parameter font is specified and valid, then it
              is used for the text extent calculation, otherwise the currently
              selected font is used.

              If  string  is empty, its horizontal extent is 0 but, for conve-
              nience when using this function for allocating enough space  for
              a possibly multi-line string, its vertical extent is the same as
              the height of an empty line of text. Please note that  this  be-
              haviour differs from that of getTextExtent/3.

              Note:  This  function works with both single-line and multi-line
              strings.

              See: wxFont, setFont/2, getPartialTextExtents/2, getTextExtent/3

       getPartialTextExtents(This, Text) -> Result

              Types:

                 Result = {Res :: boolean(), Widths :: [integer()]}
                 This = wxDC()
                 Text = unicode:chardata()

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

              The  generic version simply builds a running total of the widths
              of each character using getTextExtent/3, however if the  various
              platforms  have  a  native  API  function that is faster or more
              accurate than the generic implementation then it should be  used
              instead.

              See: getMultiLineTextExtent/3, getTextExtent/3

       getPen(This) -> wxPen:wxPen()

              Types:

                 This = wxDC()

              Gets the current pen.

              See: setPen/2

       getPixel(This, Pos) -> Result

              Types:

                 Result = {Res :: boolean(), Colour :: wx:wx_colour4()}
                 This = wxDC()
                 Pos = {X :: integer(), Y :: integer()}

              Gets in colour the colour at the specified location.

              This  method  isn't available for wxPostScriptDC or wxMetafileDC
              (not implemented in wx) nor for any DC in wxOSX port and  simply
              returns false there.

              Note: Setting a pixel can be done using drawPoint/2.

              Note:  This method shouldn't be used with wxPaintDC as accessing
              the DC while drawing can result in unexpected  results,  notably
              in wxGTK.

       getPPI(This) -> {W :: integer(), H :: integer()}

              Types:

                 This = wxDC()

              Returns the resolution of the device in pixels per inch.

       getSize(This) -> {W :: integer(), H :: integer()}

              Types:

                 This = wxDC()

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

       getSizeMM(This) -> {W :: integer(), H :: integer()}

              Types:

                 This = wxDC()

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

       getTextBackground(This) -> wx:wx_colour4()

              Types:

                 This = wxDC()

              Gets the current text background colour.

              See: setTextBackground/2

       getTextExtent(This, String) -> {W :: integer(), H :: integer()}

              Types:

                 This = wxDC()
                 String = unicode:chardata()

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

       getTextExtent(This, String, Options :: [Option]) -> Result

              Types:

                 Result =
                     {W :: integer(),
                      H :: integer(),
                      Descent :: integer(),
                      ExternalLeading :: integer()}
                 This = wxDC()
                 String = unicode:chardata()
                 Option = {theFont, wxFont:wxFont()}

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

              string is the text string to measure, descent is  the  dimension
              from  the  baseline  of the font to the bottom of the descender,
              and externalLeading is any extra vertical  space  added  to  the
              font by the font designer (usually is zero).

              The  text  extent  is  returned  in  w  and  h  pointers or as a
              {Width,Height} object depending on which version of  this  func-
              tion is used.

              If  the  optional parameter font is specified and valid, then it
              is used for the text extent calculation. Otherwise the currently
              selected font is.

              If  string  is  empty,  its  extent  is 0 in both directions, as
              expected.

              Note: This function only works with single-line strings.

              See: wxFont, setFont/2,  getPartialTextExtents/2,  getMultiLine-
              TextExtent/3

       getTextForeground(This) -> wx:wx_colour4()

              Types:

                 This = wxDC()

              Gets the current text foreground colour.

              See: setTextForeground/2

       getUserScale(This) -> {X :: number(), Y :: number()}

              Types:

                 This = wxDC()

              Gets the current user scale factor.

              See: setUserScale/3

       gradientFillConcentric(This, Rect, InitialColour, DestColour) ->
                                 ok

              Types:

                 This = wxDC()
                 Rect =
                     {X :: integer(),
                      Y :: integer(),
                      W :: integer(),
                      H :: integer()}
                 InitialColour = DestColour = wx:wx_colour()

              Fill the area specified by rect with a radial gradient, starting
              from initialColour at the centre of the  circle  and  fading  to
              destColour on the circle outside.

              The circle is placed at the centre of rect.

              Note:  Currently  this  function  is very slow, don't use it for
              real-time drawing.

       gradientFillConcentric(This, Rect, InitialColour, DestColour,
                              CircleCenter) ->
                                 ok

              Types:

                 This = wxDC()
                 Rect =
                     {X :: integer(),
                      Y :: integer(),
                      W :: integer(),
                      H :: integer()}
                 InitialColour = DestColour = wx:wx_colour()
                 CircleCenter = {X :: integer(), Y :: integer()}

              Fill the area specified by rect with a radial gradient, starting
              from  initialColour  at  the  centre of the circle and fading to
              destColour on the circle outside.

              circleCenter are the relative coordinates of centre of the  cir-
              cle in the specified rect.

              Note:  Currently  this  function  is very slow, don't use it for
              real-time drawing.

       gradientFillLinear(This, Rect, InitialColour, DestColour) -> ok

              Types:

                 This = wxDC()
                 Rect =
                     {X :: integer(),
                      Y :: integer(),
                      W :: integer(),
                      H :: integer()}
                 InitialColour = DestColour = wx:wx_colour()

       gradientFillLinear(This, Rect, InitialColour, DestColour,
                          Options :: [Option]) ->
                             ok

              Types:

                 This = wxDC()
                 Rect =
                     {X :: integer(),
                      Y :: integer(),
                      W :: integer(),
                      H :: integer()}
                 InitialColour = DestColour = wx:wx_colour()
                 Option = {nDirection, wx:wx_enum()}

              Fill the area specified by rect with a linear gradient, starting
              from initialColour and eventually fading to destColour.

              The  nDirection  specifies  the  direction of the colour change,
              default is to use initialColour on the left part of the  rectan-
              gle and destColour on the right one.

       logicalToDeviceX(This, X) -> integer()

              Types:

                 This = wxDC()
                 X = integer()

              Converts  logical  X  coordinate to device coordinate, using the
              current mapping mode, user scale factor, device origin and  axis
              orientation.

       logicalToDeviceXRel(This, X) -> integer()

              Types:

                 This = wxDC()
                 X = integer()

              Converts  logical  X  coordinate  to relative device coordinate,
              using the current mapping mode and user scale factor but  ignor-
              ing the axis orientation.

              Use this for converting a width, for example.

       logicalToDeviceY(This, Y) -> integer()

              Types:

                 This = wxDC()
                 Y = integer()

              Converts  logical  Y  coordinate to device coordinate, using the
              current mapping mode, user scale factor, device origin and  axis
              orientation.

       logicalToDeviceYRel(This, Y) -> integer()

              Types:

                 This = wxDC()
                 Y = integer()

              Converts  logical  Y  coordinate  to relative device coordinate,
              using the current mapping mode and user scale factor but  ignor-
              ing the axis orientation.

              Use this for converting a height, for example.

       maxX(This) -> integer()

              Types:

                 This = wxDC()

              Gets  the  maximum horizontal extent used in drawing commands so
              far.

       maxY(This) -> integer()

              Types:

                 This = wxDC()

              Gets the maximum vertical extent used  in  drawing  commands  so
              far.

       minX(This) -> integer()

              Types:

                 This = wxDC()

              Gets  the  minimum horizontal extent used in drawing commands so
              far.

       minY(This) -> integer()

              Types:

                 This = wxDC()

              Gets the minimum vertical extent used  in  drawing  commands  so
              far.

       isOk(This) -> boolean()

              Types:

                 This = wxDC()

              Returns true if the DC is ok to use.

       resetBoundingBox(This) -> ok

              Types:

                 This = wxDC()

              Resets  the  bounding  box:  after  a call to this function, the
              bounding box doesn't contain anything.

              See: calcBoundingBox/3

       setAxisOrientation(This, XLeftRight, YBottomUp) -> ok

              Types:

                 This = wxDC()
                 XLeftRight = YBottomUp = boolean()

              Sets the x and y axis orientation (i.e. the direction from  low-
              est to highest values on the axis).

              The  default orientation is x axis from left to right and y axis
              from top down.

       setBackground(This, Brush) -> ok

              Types:

                 This = wxDC()
                 Brush = wxBrush:wxBrush()

              Sets the current background brush for the DC.

       setBackgroundMode(This, Mode) -> ok

              Types:

                 This = wxDC()
                 Mode = integer()

              mode may be one of wxPENSTYLE_SOLID and wxPENSTYLE_TRANSPARENT.

              This setting determines whether text will be drawn with a  back-
              ground colour or not.

       setBrush(This, Brush) -> ok

              Types:

                 This = wxDC()
                 Brush = wxBrush:wxBrush()

              Sets the current brush for the DC.

              If  the  argument is ?wxNullBrush (or another invalid brush; see
              wxBrush:isOk/1), the current brush is selected out of the device
              context  (leaving  wxDC  without  any valid brush), allowing the
              current brush to be destroyed safely.

              See: wxBrush, wxMemoryDC, (for  the  interpretation  of  colours
              when drawing into a monochrome bitmap)

       setClippingRegion(This, Rect) -> ok

              Types:

                 This = wxDC()
                 Rect =
                     {X :: integer(),
                      Y :: integer(),
                      W :: integer(),
                      H :: integer()}

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

       setClippingRegion(This, Pt, Sz) -> ok

              Types:

                 This = wxDC()
                 Pt = {X :: integer(), Y :: integer()}
                 Sz = {W :: integer(), H :: integer()}

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

       setDeviceOrigin(This, X, Y) -> ok

              Types:

                 This = wxDC()
                 X = Y = integer()

              Sets  the device origin (i.e. the origin in pixels after scaling
              has been applied).

              This function may be useful in Windows printing  operations  for
              placing a graphic on a page.

       setFont(This, Font) -> ok

              Types:

                 This = wxDC()
                 Font = wxFont:wxFont()

              Sets the current font for the DC.

              If  the  argument  is  ?wxNullFont (or another invalid font; see
              wxFont:isOk/1), the current font is selected out of  the  device
              context (leaving wxDC without any valid font), allowing the cur-
              rent font to be destroyed safely.

              See: wxFont

       setLayoutDirection(This, Dir) -> ok

              Types:

                 This = wxDC()
                 Dir = wx:wx_enum()

              Sets the current layout direction for the device context.

              See: getLayoutDirection/1

       setLogicalFunction(This, Function) -> ok

              Types:

                 This = wxDC()
                 Function = wx:wx_enum()

              Sets the current logical function for the device context.

              Note: This function is not fully supported in all ports, due  to
              the  limitations of the underlying drawing model. Notably, wxIN-
              VERT which was commonly used for drawing rubber bands  or  other
              moving  outlines in the past, is not, and will not, be supported
              by wxGTK3 and wxMac. The suggested alternative is to draw tempo-
              rarily  objects  normally and refresh the (affected part of the)
              window to remove them later.

              It determines how a source pixel (from a pen or brush colour, or
              source  device context if using blit/6) combines with a destina-
              tion pixel in the current device context. Text  drawing  is  not
              affected by this function.

              See ?wxRasterOperationMode enumeration values for more info.

              The  default  is  wxCOPY,  which  simply  draws with the current
              colour. The others combine the current colour and the background
              using a logical operation.

       setMapMode(This, Mode) -> ok

              Types:

                 This = wxDC()
                 Mode = wx:wx_enum()

              The  mapping mode of the device context defines the unit of mea-
              surement used to convert logical units to device units.

              Note that in X, text drawing isn't handled consistently with the
              mapping mode; a font is always specified in point size. However,
              setting the user scale  (see  setUserScale/3)  scales  the  text
              appropriately.  In  Windows,  scalable TrueType fonts are always
              used; in X, results depend on availability of fonts, but usually
              a reasonable match is found.

              The  coordinate  origin  is  always  at  the  top  left  of  the
              screen/printer.

              Drawing to a Windows printer device  context  uses  the  current
              mapping  mode,  but  mapping mode is currently ignored for Post-
              Script output.

       setPalette(This, Palette) -> ok

              Types:

                 This = wxDC()
                 Palette = wxPalette:wxPalette()

              If this is a window DC or memory DC, assigns the  given  palette
              to the window or bitmap associated with the DC.

              If  the  argument  is  ?wxNullPalette,  the  current  palette is
              selected out of the device context,  and  the  original  palette
              restored.

              See: wxPalette

       setPen(This, Pen) -> ok

              Types:

                 This = wxDC()
                 Pen = wxPen:wxPen()

              Sets the current pen for the DC.

              If  the  argument  is  ?wxNullPen  (or  another invalid pen; see
              wxPen:isOk/1), the current pen is selected  out  of  the  device
              context  (leaving wxDC without any valid pen), allowing the cur-
              rent pen to be destroyed safely.

              See: wxMemoryDC, for the interpretation of colours when  drawing
              into a monochrome bitmap

       setTextBackground(This, Colour) -> ok

              Types:

                 This = wxDC()
                 Colour = wx:wx_colour()

              Sets the current text background colour for the DC.

       setTextForeground(This, Colour) -> ok

              Types:

                 This = wxDC()
                 Colour = wx:wx_colour()

              Sets the current text foreground colour for the DC.

              See:  wxMemoryDC, for the interpretation of colours when drawing
              into a monochrome bitmap

       setUserScale(This, XScale, YScale) -> ok

              Types:

                 This = wxDC()
                 XScale = YScale = number()

              Sets the user scaling  factor,  useful  for  applications  which
              require 'zooming'.

       startDoc(This, Message) -> boolean()

              Types:

                 This = wxDC()
                 Message = unicode:chardata()

              Starts a document (only relevant when outputting to a printer).

              message is a message to show while printing.

       startPage(This) -> ok

              Types:

                 This = wxDC()

              Starts  a  document  page  (only  relevant  when outputting to a
              printer).



wxWidgets team.                    wx 2.1.1                            wxDC(3)