]> git.saurik.com Git - wxWidgets.git/blame - docs/latex/wx/dc.tex
Add -fno-strict-aliasing to the optimisation flags for gcc as discussed on wx-dev
[wxWidgets.git] / docs / latex / wx / dc.tex
CommitLineData
a660d684
KB
1\section{\class{wxDC}}\label{wxdc}
2
3A wxDC is a {\it device context} onto which graphics and text can be drawn.
4It is intended to represent a number of output devices in a generic way,
fe604ccd 5so a window can have a device context associated with it, and a printer also has a device context.
a660d684
KB
6In this way, the same piece of code may write to a number of different devices,
7if the device context is used as a parameter.
8
6bcf450c
VZ
9Notice that wxDC is an abstract base class and can't be created directly,
10please use \helpref{wxPaintDC}{wxpaintdc}, \helpref{wxClientDC}{wxclientdc},
11\helpref{wxWindowDC}{wxwindowdc}, \helpref{wxScreenDC}{wxscreendc},
12\helpref{wxMemoryDC}{wxmemorydc} or \helpref{wxPrinterDC}{wxprinterdc}.
a660d684 13
eb750029
VZ
14% VZ: we should really document them instead of this lame excuse, but I don't
15% have time for it now, when it is done please remove this
16Please note that in addition to the versions of the methods documented here,
17there are also versions which accept single {\tt wxPoint} parameter instead of
18two {\tt wxCoord} ones or {\tt wxPoint} and {\tt wxSize} instead of four of
19them.
20
a660d684
KB
21\wxheading{Derived from}
22
23\helpref{wxObject}{wxobject}
24
954b8ae6
JS
25\wxheading{Include files}
26
27<wx/dc.h>
28
a660d684
KB
29\wxheading{See also}
30
31\helpref{Overview}{dcoverview}
32
33\latexignore{\rtfignore{\wxheading{Members}}}
34
6e76b35d 35
a660d684
KB
36\membersection{wxDC::Blit}\label{wxdcblit}
37
1f897d25
VZ
38\func{bool}{Blit}{\param{wxCoord}{ xdest}, \param{wxCoord}{ ydest}, \param{wxCoord}{ width}, \param{wxCoord}{ height},
39 \param{wxDC* }{source}, \param{wxCoord}{ xsrc}, \param{wxCoord}{ ysrc}, \param{int}{ logicalFunc = wxCOPY},
cc81d32f 40 \param{bool }{useMask = false}, \param{wxCoord}{ xsrcMask = -1}, \param{wxCoord}{ ysrcMask = -1}}
a660d684
KB
41
42Copy from a source DC to this DC, specifying the destination
0cbff120
JS
43coordinates, size of area to copy, source DC, source coordinates,
44logical function, whether to use a bitmap mask, and mask source position.
a660d684
KB
45
46\wxheading{Parameters}
47
48\docparam{xdest}{Destination device context x position.}
49
50\docparam{ydest}{Destination device context y position.}
51
52\docparam{width}{Width of source area to be copied.}
53
54\docparam{height}{Height of source area to be copied.}
55
56\docparam{source}{Source device context.}
57
58\docparam{xsrc}{Source device context x position.}
59
60\docparam{ysrc}{Source device context y position.}
61
62\docparam{logicalFunc}{Logical function to use: see \helpref{wxDC::SetLogicalFunction}{wxdcsetlogicalfunction}.}
63
cc81d32f 64\docparam{useMask}{If true, Blit does a transparent blit using the mask that is associated with the bitmap
0cbff120 65selected into the source device context. The Windows implementation does the following if MaskBlt cannot be used:
a660d684
KB
66
67\begin{enumerate}
68\item Creates a temporary bitmap and copies the destination area into it.
69\item Copies the source area into the temporary bitmap using the specified logical function.
70\item Sets the masked area in the temporary bitmap to BLACK by ANDing the
71mask bitmap with the temp bitmap with the foreground colour set to WHITE
72and the bg colour set to BLACK.
73\item Sets the unmasked area in the destination area to BLACK by ANDing the
74mask bitmap with the destination area with the foreground colour set to BLACK
75and the background colour set to WHITE.
76\item ORs the temporary bitmap with the destination area.
77\item Deletes the temporary bitmap.
78\end{enumerate}
79
80This sequence of operations ensures that the source's transparent area need not be black,
81and logical functions are supported.
0cbff120 82
aef94d68 83{\bf Note:} on Windows, blitting with masks can be speeded up considerably by compiling
fc2171bd 84wxWidgets with the wxUSE\_DC\_CACHE option enabled. You can also influence whether MaskBlt
0cbff120
JS
85or the explicit mask blitting code above is used, by using \helpref{wxSystemOptions}{wxsystemoptions} and
86setting the {\bf no-maskblt} option to 1.
87
a660d684
KB
88}
89
0cbff120
JS
90\docparam{xsrcMask}{Source x position on the mask. If both xsrcMask and ysrcMask are -1, xsrc and ysrc
91will be assumed for the mask source position. Currently only implemented on Windows.}
92
93\docparam{ysrcMask}{Source y position on the mask. If both xsrcMask and ysrcMask are -1, xsrc and ysrc
94will be assumed for the mask source position. Currently only implemented on Windows.}
95
96
a660d684
KB
97\wxheading{Remarks}
98
99There is partial support for Blit in wxPostScriptDC, under X.
100
101See \helpref{wxMemoryDC}{wxmemorydc} for typical usage.
102
ac1edf35 103\wxheading{See also}
a660d684
KB
104
105\helpref{wxMemoryDC}{wxmemorydc}, \helpref{wxBitmap}{wxbitmap}, \helpref{wxMask}{wxmask}
106
aef94d68 107\begin{comment}
6e76b35d 108
0cbff120
JS
109\membersection{wxDC::CacheEnabled}\label{wxdccacheenabled}
110
111\func{static bool}{CacheEnabled}{\void}
112
cc81d32f 113On supported platforms (currently only Windows), returns true
0cbff120
JS
114if the DC cache is enabled. The DC cache
115can speed up the \helpref{Blit}{wxdcblit} operation when
116drawing a large number of masked bitmaps.
117
118If using the cache functions in your code, please test for the
119wxUSE\_DC\_CACHEING preprocessor symbol for portability.
120
121\wxheading{See also}
122
123\helpref{wxDC::EnableCache}{wxdcenablecache}, \helpref{wxDC::ClearCache}
aef94d68 124\end{comment}
0cbff120 125
6e76b35d 126
f6bcfd97
BP
127\membersection{wxDC::CalcBoundingBox}\label{wxdccalcboundingbox}
128
129\func{void}{CalcBoundingBox}{\param{wxCoord }{x}, \param{wxCoord }{y}}
130
131Adds the specified point to the bounding box which can be retrieved with
132\helpref{MinX}{wxdcminx}, \helpref{MaxX}{wxdcmaxx} and
133\helpref{MinY}{wxdcminy}, \helpref{MaxY}{wxdcmaxy} functions.
134
135\wxheading{See also}
136
137\helpref{ResetBoundingBox}{wxdcresetboundingbox}
138
6e76b35d 139
a660d684
KB
140\membersection{wxDC::Clear}\label{wxdcclear}
141
142\func{void}{Clear}{\void}
143
144Clears the device context using the current background brush.
145
aef94d68 146\begin{comment}
6e76b35d 147
0cbff120
JS
148\membersection{wxDC::ClearCache}\label{wxdcclearcache}
149
150\func{static void}{ClearCache}{\void}
151
152On supported platforms (currently only Windows), clears
153the contents of the DC cache (one bitmap and two Windows device contexts). The DC cache
154can speed up the \helpref{Blit}{wxdcblit} operation when
155drawing a large number of masked bitmaps. You should
156call ClearCache at the end of length DC operations if you wish to only use
157the cache transiently; you should also call it as your application exits.
158
159If using the cache functions in your code, please test for the
160wxUSE\_DC\_CACHEING preprocessor symbol for portability.
161
162\wxheading{See also}
163
164\helpref{wxDC::EnableCache}{wxdcenablecache}, \helpref{wxDC::CacheEnabled}
aef94d68 165\end{comment}
0cbff120 166
6e76b35d 167
b1263dcf
WS
168\membersection{wxDC::ComputeScaleAndOrigin}\label{wxdccomputescaleandorigin}
169
170\func{virtual void}{ComputeScaleAndOrigin}{\void}
171
172Performs all necessary computations for given platform and context type
173after each change of scale and origin parameters. Usually called automatically
174internally after such changes.
175
176
a660d684
KB
177\membersection{wxDC::CrossHair}\label{wxdccrosshair}
178
1f897d25 179\func{void}{CrossHair}{\param{wxCoord}{ x}, \param{wxCoord}{ y}}
a660d684
KB
180
181Displays a cross hair using the current pen. This is a vertical
fe604ccd 182and horizontal line the height and width of the window, centred
a660d684
KB
183on the given point.
184
6e76b35d 185
a660d684
KB
186\membersection{wxDC::DestroyClippingRegion}\label{wxdcdestroyclippingregion}
187
188\func{void}{DestroyClippingRegion}{\void}
189
190Destroys the current clipping region so that none of the DC is clipped.
191See also \helpref{wxDC::SetClippingRegion}{wxdcsetclippingregion}.
192
6e76b35d 193
a660d684
KB
194\membersection{wxDC::DeviceToLogicalX}\label{wxdcdevicetologicalx}
195
1f897d25 196\func{wxCoord}{DeviceToLogicalX}{\param{wxCoord}{ x}}
a660d684
KB
197
198Convert device X coordinate to logical coordinate, using the current
199mapping mode.
200
6e76b35d 201
a660d684
KB
202\membersection{wxDC::DeviceToLogicalXRel}\label{wxdcdevicetologicalxrel}
203
1f897d25 204\func{wxCoord}{DeviceToLogicalXRel}{\param{wxCoord}{ x}}
a660d684
KB
205
206Convert device X coordinate to relative logical coordinate, using the current
1387b68a
GD
207mapping mode but ignoring the x axis orientation.
208Use this function for converting a width, for example.
a660d684 209
6e76b35d 210
a660d684
KB
211\membersection{wxDC::DeviceToLogicalY}\label{wxdcdevicetologicaly}
212
1f897d25 213\func{wxCoord}{DeviceToLogicalY}{\param{wxCoord}{ y}}
a660d684
KB
214
215Converts device Y coordinate to logical coordinate, using the current
216mapping mode.
217
6e76b35d 218
a660d684
KB
219\membersection{wxDC::DeviceToLogicalYRel}\label{wxdcdevicetologicalyrel}
220
1f897d25 221\func{wxCoord}{DeviceToLogicalYRel}{\param{wxCoord}{ y}}
a660d684
KB
222
223Convert device Y coordinate to relative logical coordinate, using the current
1387b68a
GD
224mapping mode but ignoring the y axis orientation.
225Use this function for converting a height, for example.
a660d684 226
6e76b35d 227
a660d684
KB
228\membersection{wxDC::DrawArc}\label{wxdcdrawarc}
229
8bdd5efa 230\func{void}{DrawArc}{\param{wxCoord}{ x1}, \param{wxCoord}{ y1}, \param{wxCoord}{ x2}, \param{wxCoord}{ y2}, \param{wxCoord}{ xc}, \param{wxCoord}{ yc}}
a660d684 231
b8de493f 232Draws an arc of a circle, centred on ({\it xc, yc}), with starting point ({\it x1, y1})
a660d684
KB
233and ending at ({\it x2, y2}). The current pen is used for the outline
234and the current brush for filling the shape.
235
b8de493f
JS
236The arc is drawn in an anticlockwise direction from the start point to the end point.
237
6e76b35d 238
72fd19a1
JS
239\membersection{wxDC::DrawBitmap}\label{wxdcdrawbitmap}
240
1f897d25 241\func{void}{DrawBitmap}{\param{const wxBitmap\&}{ bitmap}, \param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{bool}{ transparent}}
72fd19a1 242
cc81d32f 243Draw a bitmap on the device context at the specified point. If {\it transparent} is true and the bitmap has
72fd19a1
JS
244a transparency mask, the bitmap will be drawn transparently.
245
41fbc841 246When drawing a mono-bitmap, the current text foreground colour will be used to draw the foreground
9000c624 247of the bitmap (all bits set to 1), and the current text background colour to draw the background
fa482912 248(all bits set to 0). See also \helpref{SetTextForeground}{wxdcsettextforeground},
9000c624 249\helpref{SetTextBackground}{wxdcsettextbackground} and \helpref{wxMemoryDC}{wxmemorydc}.
41fbc841 250
6e76b35d 251
cd9da200
VZ
252\membersection{wxDC::DrawCheckMark}\label{wxdcdrawcheckmark}
253
254\func{void}{DrawCheckMark}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}}
255
256\func{void}{DrawCheckMark}{\param{const wxRect \&}{rect}}
257
258Draws a check mark inside the given rectangle.
259
6e76b35d 260
0371e9a8
VZ
261\membersection{wxDC::DrawCircle}\label{wxdcdrawcircle}
262
263\func{void}{DrawCircle}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ radius}}
264
265\func{void}{DrawCircle}{\param{const wxPoint\&}{ pt}, \param{wxCoord}{ radius}}
266
267Draws a circle with the given centre and radius.
268
269\wxheading{See also}
270
271\helpref{DrawEllipse}{wxdcdrawellipse}
272
6e76b35d 273
a660d684
KB
274\membersection{wxDC::DrawEllipse}\label{wxdcdrawellipse}
275
1f897d25 276\func{void}{DrawEllipse}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}}
a660d684 277
0371e9a8
VZ
278\func{void}{DrawEllipse}{\param{const wxPoint\&}{ pt}, \param{const wxSize\&}{ size}}
279
280\func{void}{DrawEllipse}{\param{const wxRect\&}{ rect}}
281
282Draws an ellipse contained in the rectangle specified either with the given top
283left corner and the given size or directly. The current pen is used for the
284outline and the current brush for filling the shape.
285
286\wxheading{See also}
287
288\helpref{DrawCircle}{wxdcdrawcircle}
a660d684 289
6e76b35d 290
a660d684
KB
291\membersection{wxDC::DrawEllipticArc}\label{wxdcdrawellipticarc}
292
1f897d25 293\func{void}{DrawEllipticArc}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height},
a660d684
KB
294 \param{double}{ start}, \param{double}{ end}}
295
06d20283 296Draws an arc of an ellipse. The current pen is used for drawing the arc and
267a7108 297the current brush is used for drawing the pie.
a660d684
KB
298
299{\it x} and {\it y} specify the x and y coordinates of the upper-left corner of the rectangle that contains
300the ellipse.
301
06d20283 302{\it width} and {\it height} specify the width and height of the rectangle that contains
a660d684
KB
303the ellipse.
304
305{\it start} and {\it end} specify the start and end of the arc relative to the three-o'clock
306position from the center of the rectangle. Angles are specified
307in degrees (360 is a complete circle). Positive values mean
308counter-clockwise motion. If {\it start} is equal to {\it end}, a
309complete ellipse will be drawn.
310
6e76b35d 311
a660d684
KB
312\membersection{wxDC::DrawIcon}\label{wxdcdrawicon}
313
1f897d25 314\func{void}{DrawIcon}{\param{const wxIcon\&}{ icon}, \param{wxCoord}{ x}, \param{wxCoord}{ y}}
a660d684
KB
315
316Draw an icon on the display (does nothing if the device context is PostScript).
fe604ccd 317This can be the simplest way of drawing bitmaps on a window.
a660d684 318
6e76b35d 319
547e2b0c
WS
320\membersection{wxDC::DrawLabel}\label{wxdcdrawlabel}
321
322\func{virtual void}{DrawLabel}{\param{const wxString\&}{ text},
323 \param{const wxBitmap\&}{ image},
324 \param{const wxRect\&}{ rect},
717ba489 325 \param{int}{ alignment = wxALIGN\_LEFT | wxALIGN\_TOP},
547e2b0c
WS
326 \param{int}{ indexAccel = -1},
327 \param{wxRect *}{rectBounding = NULL}}
328
329\func{void}{DrawLabel}{\param{const wxString\&}{ text}, \param{const wxRect\&}{ rect},
717ba489 330 \param{int}{ alignment = wxALIGN\_LEFT | wxALIGN\_TOP},
547e2b0c
WS
331 \param{int}{ indexAccel = -1}}
332
333Draw optional bitmap and the text into the given rectangle and aligns it as specified
334by alignment parameter; it also will emphasize the character with the given index if
335it is != -1 and return the bounding rectangle if required.
336
337
a660d684
KB
338\membersection{wxDC::DrawLine}\label{wxdcdrawline}
339
1f897d25 340\func{void}{DrawLine}{\param{wxCoord}{ x1}, \param{wxCoord}{ y1}, \param{wxCoord}{ x2}, \param{wxCoord}{ y2}}
a660d684
KB
341
342Draws a line from the first point to the second. The current pen is used
90049178
VZ
343for drawing the line. Note that the point $(x2, y2)$ is {\emph not} part of the
344line and is not drawn by this function (this is consistent with the behaviour
345of many other toolkits).
a660d684 346
6e76b35d 347
a660d684
KB
348\membersection{wxDC::DrawLines}\label{wxdcdrawlines}
349
1f897d25 350\func{void}{DrawLines}{\param{int}{ n}, \param{wxPoint}{ points[]}, \param{wxCoord}{ xoffset = 0}, \param{wxCoord}{ yoffset = 0}}
a660d684 351
1f897d25 352\func{void}{DrawLines}{\param{wxList *}{points}, \param{wxCoord}{ xoffset = 0}, \param{wxCoord}{ yoffset = 0}}
a660d684
KB
353
354Draws lines using an array of {\it points} of size {\it n}, or list of
355pointers to points, adding the optional offset coordinate. The current
356pen is used for drawing the lines. The programmer is responsible for
357deleting the list of points.
358
06d20283
RD
359\pythonnote{The wxPython version of this method accepts a Python list
360of wxPoint objects.}
361
f3539882
VZ
362\perlnote{The wxPerl version of this method accepts
363 as its first parameter a reference to an array
364 of wxPoint objects.}
365
6e76b35d 366
a660d684
KB
367\membersection{wxDC::DrawPolygon}\label{wxdcdrawpolygon}
368
1f897d25 369\func{void}{DrawPolygon}{\param{int}{ n}, \param{wxPoint}{ points[]}, \param{wxCoord}{ xoffset = 0}, \param{wxCoord}{ yoffset = 0},\\
a660d684
KB
370 \param{int }{fill\_style = wxODDEVEN\_RULE}}
371
1f897d25 372\func{void}{DrawPolygon}{\param{wxList *}{points}, \param{wxCoord}{ xoffset = 0}, \param{wxCoord}{ yoffset = 0},\\
a660d684
KB
373 \param{int }{fill\_style = wxODDEVEN\_RULE}}
374
375Draws a filled polygon using an array of {\it points} of size {\it n},
376or list of pointers to points, adding the optional offset coordinate.
377
378The last argument specifies the fill rule: {\bf wxODDEVEN\_RULE} (the
379default) or {\bf wxWINDING\_RULE}.
380
381The current pen is used for drawing the outline, and the current brush
382for filling the shape. Using a transparent brush suppresses filling.
383The programmer is responsible for deleting the list of points.
384
fc2171bd 385Note that wxWidgets automatically closes the first and last points.
a660d684 386
06d20283
RD
387\pythonnote{The wxPython version of this method accepts a Python list
388of wxPoint objects.}
389
f3539882
VZ
390\perlnote{The wxPerl version of this method accepts
391 as its first parameter a reference to an array
392 of wxPoint objects.}
393
6e76b35d
VZ
394
395\membersection{wxDC::DrawPolyPolygon}\label{wxdcdrawpolypolygon}
396
163dc80e
VZ
397\func{void}{DrawPolyPolygon}{\param{int}{ n}, \param{int}{ count[]}, \param{wxPoint}{ points[]}, \param{wxCoord}{ xoffset = 0}, \param{wxCoord}{ yoffset = 0},\\
398 \param{int }{fill\_style = wxODDEVEN\_RULE}}
399
400Draws two or more filled polygons using an array of {\it points}, adding the
401optional offset coordinates.
402
403Notice that for the platforms providing a native implementation
404of this function (Windows and PostScript-based wxDC currently), this is more
405efficient than using \helpref{DrawPolygon}{wxdcdrawpolygon} in a loop.
406
407{\it n} specifies the number of polygons to draw, the array {\it count} of size
408{\it n} specifies the number of points in each of the polygons in the
409{\it points} array.
410
411The last argument specifies the fill rule: {\bf wxODDEVEN\_RULE} (the default)
412or {\bf wxWINDING\_RULE}.
413
414The current pen is used for drawing the outline, and the current brush for
415filling the shape. Using a transparent brush suppresses filling.
416
417The polygons maybe disjoint or overlapping. Each polygon specified in a call to
418{\bf DrawPolyPolygon} must be closed. Unlike polygons created by the
419\helpref{DrawPolygon}{wxdcdrawpolygon} member function, the polygons created by
420{\bf DrawPolyPolygon} are not closed automatically.
421
422\pythonnote{Not implemented yet}
6e76b35d 423
163dc80e 424\perlnote{Not implemented yet}
6e76b35d
VZ
425
426
a660d684
KB
427\membersection{wxDC::DrawPoint}\label{wxdcdrawpoint}
428
1f897d25 429\func{void}{DrawPoint}{\param{wxCoord}{ x}, \param{wxCoord}{ y}}
a660d684 430
4c275284 431Draws a point using the color of the current pen. Note that the other properties of the pen are not used, such as width etc..
a660d684 432
6e76b35d 433
a660d684
KB
434\membersection{wxDC::DrawRectangle}\label{wxdcdrawrectangle}
435
1f897d25 436\func{void}{DrawRectangle}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}}
a660d684
KB
437
438Draws a rectangle with the given top left corner, and with the given
439size. The current pen is used for the outline and the current brush
440for filling the shape.
441
6e76b35d 442
1f897d25
VZ
443\membersection{wxDC::DrawRotatedText}\label{wxdcdrawrotatedtext}
444
445\func{void}{DrawRotatedText}{\param{const wxString\& }{text}, \param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{double}{ angle}}
446
447Draws the text rotated by {\it angle} degrees.
448
4770df95
VZ
449{\bf NB:} Under Win9x only TrueType fonts can be drawn by this function. In
450particular, a font different from {\tt wxNORMAL\_FONT} should be used as the
451latter is not a TrueType font. {\tt wxSWISS\_FONT} is an example of a font
452which is.
453
1f897d25
VZ
454\wxheading{See also}
455
456\helpref{DrawText}{wxdcdrawtext}
457
6e76b35d 458
a660d684
KB
459\membersection{wxDC::DrawRoundedRectangle}\label{wxdcdrawroundedrectangle}
460
f5d7ba75 461\func{void}{DrawRoundedRectangle}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}, \param{double}{ radius}}
a660d684
KB
462
463Draws a rectangle with the given top left corner, and with the given
464size. The corners are quarter-circles using the given radius. The
465current pen is used for the outline and the current brush for filling
466the shape.
467
468If {\it radius} is positive, the value is assumed to be the
469radius of the rounded corner. If {\it radius} is negative,
470the absolute value is assumed to be the {\it proportion} of the smallest
471dimension of the rectangle. This means that the corner can be
472a sensible size relative to the size of the rectangle, and also avoids
473the strange effects X produces when the corners are too big for
474the rectangle.
475
6e76b35d 476
a660d684
KB
477\membersection{wxDC::DrawSpline}\label{wxdcdrawspline}
478
f3542025 479\func{void}{DrawSpline}{\param{int }{n}, \param{wxPoint }{points[]}}
2a138829
JS
480
481Draws a spline between all given control points, using the current
482pen.
483
a660d684
KB
484\func{void}{DrawSpline}{\param{wxList *}{points}}
485
486Draws a spline between all given control points, using the current
2a138829 487pen. Doesn't delete the wxList and contents.
a660d684 488
1f897d25 489\func{void}{DrawSpline}{\param{wxCoord}{ x1}, \param{wxCoord}{ y1}, \param{wxCoord}{ x2}, \param{wxCoord}{ y2}, \param{wxCoord}{ x3}, \param{wxCoord}{ y3}}
a660d684
KB
490
491Draws a three-point spline using the current pen.
492
06d20283
RD
493\pythonnote{The wxPython version of this method accepts a Python list
494of wxPoint objects.}
495
f3539882
VZ
496\perlnote{The wxPerl version of this method accepts a reference to an array
497 of wxPoint objects.}
498
6e76b35d 499
a660d684
KB
500\membersection{wxDC::DrawText}\label{wxdcdrawtext}
501
1f897d25 502\func{void}{DrawText}{\param{const wxString\& }{text}, \param{wxCoord}{ x}, \param{wxCoord}{ y}}
a660d684
KB
503
504Draws a text string at the specified point, using the current text font,
505and the current text foreground and background colours.
506
507The coordinates refer to the top-left corner of the rectangle bounding
508the string. See \helpref{wxDC::GetTextExtent}{wxdcgettextextent} for how
509to get the dimensions of a text string, which can be used to position the
510text more precisely.
511
f6bcfd97
BP
512{\bf NB:} under wxGTK the current
513\helpref{logical function}{wxdcgetlogicalfunction} is used by this function
514but it is ignored by wxMSW. Thus, you should avoid using logical functions
515with this function in portable programs.
516
aef94d68 517\begin{comment}
6e76b35d 518
0cbff120
JS
519\membersection{wxDC::EnableCache}\label{wxdcenablecache}
520
521\func{static void}{EnableCache}{\param{bool}{ enableCache}}
522
523On supported platforms (currently only Windows), enables the DC cache
524which can speed up the \helpref{Blit}{wxdcblit} operation when
525drawing a large number of masked bitmaps.
526
527If using the cache functions in your code, please test for the
528wxUSE\_DC\_CACHEING preprocessor symbol for portability.
529
530\wxheading{See also}
531
532\helpref{wxDC::CacheEnabled}{wxdccacheenabled}, \helpref{wxDC::ClearCache}
aef94d68 533\end{comment}
0cbff120 534
6e76b35d 535
a660d684
KB
536\membersection{wxDC::EndDoc}\label{wxdcenddoc}
537
538\func{void}{EndDoc}{\void}
539
540Ends a document (only relevant when outputting to a printer).
541
6e76b35d 542
a660d684
KB
543\membersection{wxDC::EndPage}\label{wxdcendpage}
544
545\func{void}{EndPage}{\void}
546
547Ends a document page (only relevant when outputting to a printer).
548
6e76b35d 549
a660d684
KB
550\membersection{wxDC::FloodFill}\label{wxdcfloodfill}
551
387ebd3e 552\func{bool}{FloodFill}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{const wxColour\&}{ colour}, \param{int}{ style=wxFLOOD\_SURFACE}}
a660d684 553
15770d1a
JS
554Flood fills the device context starting from the given point, using
555the {\it current brush colour}, and using a style:
a660d684
KB
556
557\begin{itemize}\itemsep=0pt
558\item wxFLOOD\_SURFACE: the flooding occurs until a colour other than the given colour is encountered.
559\item wxFLOOD\_BORDER: the area to be flooded is bounded by the given colour.
560\end{itemize}
561
cc81d32f 562Returns false if the operation failed.
387ebd3e 563
b1699cd3 564{\it Note:} The present implementation for non-Windows platforms may fail to find
387ebd3e 565colour borders if the pixels do not match the colour exactly. However the
cc81d32f 566function will still return true.
a660d684 567
6e76b35d 568
a660d684
KB
569\membersection{wxDC::GetBackground}\label{wxdcgetbackground}
570
f6bcfd97
BP
571\constfunc{const wxBrush\&}{GetBackground}{\void}
572
a660d684
KB
573Gets the brush used for painting the background (see \helpref{wxDC::SetBackground}{wxdcsetbackground}).
574
6e76b35d 575
f6bcfd97
BP
576\membersection{wxDC::GetBackgroundMode}\label{wxdcgetbackgroundmode}
577
578\constfunc{int}{GetBackgroundMode}{\void}
579
580Returns the current background mode: {\tt wxSOLID} or {\tt wxTRANSPARENT}.
581
582\wxheading{See also}
583
584\helpref{SetBackgroundMode}{wxdcsetbackgroundmode}
585
6e76b35d 586
a660d684
KB
587\membersection{wxDC::GetBrush}\label{wxdcgetbrush}
588
f6bcfd97
BP
589\constfunc{const wxBrush\&}{GetBrush}{\void}
590
a660d684
KB
591Gets the current brush (see \helpref{wxDC::SetBrush}{wxdcsetbrush}).
592
6e76b35d 593
a660d684
KB
594\membersection{wxDC::GetCharHeight}\label{wxdcgetcharheight}
595
1f897d25 596\func{wxCoord}{GetCharHeight}{\void}
a660d684
KB
597
598Gets the character height of the currently set font.
599
6e76b35d 600
a660d684
KB
601\membersection{wxDC::GetCharWidth}\label{wxdcgetcharwidth}
602
1f897d25 603\func{wxCoord}{GetCharWidth}{\void}
a660d684
KB
604
605Gets the average character width of the currently set font.
606
6e76b35d 607
fe604ccd 608\membersection{wxDC::GetClippingBox}\label{wxdcgetclippingbox}
a660d684 609
1f897d25 610\func{void}{GetClippingBox}{\param{wxCoord}{ *x}, \param{wxCoord}{ *y}, \param{wxCoord}{ *width}, \param{wxCoord}{ *height}}
a660d684
KB
611
612Gets the rectangle surrounding the current clipping region.
613
06d20283
RD
614\pythonnote{No arguments are required and the four values defining the
615rectangle are returned as a tuple.}
616
5873607e 617\perlnote{This method takes no arguments and returns a four element list
0a67eeac 618{\tt ( x, y, width, height )}}
5873607e 619
6e76b35d 620
a660d684
KB
621\membersection{wxDC::GetFont}\label{wxdcgetfont}
622
f6bcfd97
BP
623\constfunc{const wxFont\&}{GetFont}{\void}
624
04905cca
VZ
625Gets the current font. Notice that even although each device context object has
626some default font after creation, this method would return a \texttt{wxNullFont}
627initially and only after calling \helpref{wxDC::SetFont}{wxdcsetfont} a valid
628font is returned.
a660d684 629
6e76b35d 630
a660d684
KB
631\membersection{wxDC::GetLogicalFunction}\label{wxdcgetlogicalfunction}
632
633\func{int}{GetLogicalFunction}{\void}
634
635Gets the current logical function (see \helpref{wxDC::SetLogicalFunction}{wxdcsetlogicalfunction}).
636
6e76b35d 637
a660d684
KB
638\membersection{wxDC::GetMapMode}\label{wxdcgetmapmode}
639
640\func{int}{GetMapMode}{\void}
641
642Gets the {\it mapping mode} for the device context (see \helpref{wxDC::SetMapMode}{wxdcsetmapmode}).
643
6e76b35d 644
42bf070c
RD
645\membersection{wxDC::GetPartialTextExtents}\label{wxdcgetpartialtextextents}
646
647\constfunc{bool}{GetPartialTextExtents}{\param{const wxString\& }{text},
648\param{wxArrayInt\& }{widths}}
649
43e8916f
MW
650Fills the {\it widths} array with the widths from the beginning of
651{\it text} to the corresponding character of {\it text}. The generic
42bf070c
RD
652version simply builds a running total of the widths of each character
653using \helpref{GetTextExtent}{wxdcgettextextent}, however if the
654various platforms have a native API function that is faster or more
43e8916f 655accurate than the generic implementation then it should be used
42bf070c
RD
656instead.
657
658\pythonnote{This method only takes the {\it text} parameter and
659 returns a Python list of integers.}
660
a660d684 661
bc525d00 662\membersection{wxDC::GetPen}\label{wxdcgetpen}
a660d684 663
f6bcfd97
BP
664\constfunc{const wxPen\&}{GetPen}{\void}
665
a660d684
KB
666Gets the current pen (see \helpref{wxDC::SetPen}{wxdcsetpen}).
667
bc525d00 668
a660d684
KB
669\membersection{wxDC::GetPixel}\label{wxdcgetpixel}
670
1f897d25 671\func{bool}{GetPixel}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxColour *}{colour}}
a660d684 672
87b72f94 673Gets in {\it colour} the colour at the specified location.
03ca23b6 674Not available for wxPostScriptDC or wxMetafileDC.
a660d684 675
43e8916f
MW
676Note that setting a pixel can be done using \helpref{DrawPoint}{wxdcdrawpoint}.
677
86e78222
RD
678\pythonnote{For wxPython the wxColour value is returned and is not
679required as a parameter.}
680
5873607e
VZ
681\perlnote{This method only takes the parameters {\tt x} and {\tt y} and returns
682a Wx::Colour value}
683
03ca23b6
JS
684\membersection{wxDC::GetPPI}\label{wxdcgetppi}
685
686\constfunc{wxSize}{GetPPI}{\void}
687
688Returns the resolution of the device in pixels per inch.
6e76b35d 689
a660d684
KB
690\membersection{wxDC::GetSize}\label{wxdcgetsize}
691
03ca23b6 692\constfunc{void}{GetSize}{\param{wxCoord *}{width}, \param{wxCoord *}{height}}
a660d684 693
03ca23b6 694\constfunc{wxSize}{GetSize}{\void}
a660d684 695
03ca23b6
JS
696This gets the horizontal and vertical resolution in device units. It can be used to scale graphics to fit the page.
697For example, if {\it maxX} and {\it maxY}\rtfsp
a660d684
KB
698represent the maximum horizontal and vertical `pixel' values used in your
699application, the following code will scale the graphic to fit on the
700printer page:
701
702\begin{verbatim}
1f897d25 703 wxCoord w, h;
a660d684
KB
704 dc.GetSize(&w, &h);
705 double scaleX=(double)(maxX/w);
706 double scaleY=(double)(maxY/h);
707 dc.SetUserScale(min(scaleX,scaleY),min(scaleX,scaleY));
708\end{verbatim}
709
2233e5b8
RD
710\pythonnote{In place of a single overloaded method name, wxPython
711implements the following methods:\par
712\indented{2cm}{\begin{twocollist}
c9110876
VS
713\twocolitem{{\bf GetSize()}}{Returns a wxSize}
714\twocolitem{{\bf GetSizeTuple()}}{Returns a 2-tuple (width, height)}
2233e5b8
RD
715\end{twocollist}}
716}
06d20283 717
5873607e
VZ
718\perlnote{In place of a single overloaded method, wxPerl uses:\par
719\indented{2cm}{\begin{twocollist}
720\twocolitem{{\bf GetSize()}}{Returns a Wx::Size}
721\twocolitem{{\bf GetSizeWH()}}{Returns a 2-element list
0a67eeac 722 {\tt ( width, height )}}
5873607e
VZ
723\end{twocollist}
724}}
725
03ca23b6
JS
726\membersection{wxDC::GetSizeMM}\label{wxdcgetsizemm}
727
728\constfunc{void}{GetSizeMM}{\param{wxCoord *}{width}, \param{wxCoord *}{height}}
729
730\constfunc{wxSize}{GetSizeMM}{\void}
731
732Returns the horizontal and vertical resolution in millimetres.
6e76b35d 733
a660d684
KB
734\membersection{wxDC::GetTextBackground}\label{wxdcgettextbackground}
735
f6bcfd97
BP
736\constfunc{const wxColour\&}{GetTextBackground}{\void}
737
a660d684
KB
738Gets the current text background colour (see \helpref{wxDC::SetTextBackground}{wxdcsettextbackground}).
739
6e76b35d 740
a660d684
KB
741\membersection{wxDC::GetTextExtent}\label{wxdcgettextextent}
742
1f897d25
VZ
743\func{void}{GetTextExtent}{\param{const wxString\& }{string}, \param{wxCoord *}{w}, \param{wxCoord *}{h},\\
744 \param{wxCoord *}{descent = NULL}, \param{wxCoord *}{externalLeading = NULL}, \param{wxFont *}{font = NULL}}
a660d684
KB
745
746Gets the dimensions of the string using the currently selected font.
747\rtfsp{\it string} is the text string to measure, {\it w} and {\it h} are
748the total width and height respectively, {\it descent} is the
749dimension from the baseline of the font to the bottom of the
750descender, and {\it externalLeading} is any extra vertical space added
751to the font by the font designer (usually is zero).
752
268b0725
VZ
753If the optional parameter {\it font} is specified and valid, then it is used
754for the text extent calculation. Otherwise the currently selected font is.
a660d684
KB
755
756See also \helpref{wxFont}{wxfont}, \helpref{wxDC::SetFont}{wxdcsetfont}.
757
06d20283
RD
758\pythonnote{The following methods are implemented in wxPython:\par
759\indented{2cm}{\begin{twocollist}
c9110876
VS
760\twocolitem{{\bf GetTextExtent(string)}}{Returns a 2-tuple, (width, height)}
761\twocolitem{{\bf GetFullTextExtent(string, font=NULL)}}{Returns a
06d20283
RD
7624-tuple, (width, height, descent, externalLeading) }
763\end{twocollist}}
764}
765
5873607e
VZ
766\perlnote{In wxPerl this method is implemented as
767 {\bf GetTextExtent( string, font = undef )} returning a four element
0a67eeac 768 array {\tt ( width, height, descent, externalLeading )}
5873607e
VZ
769}
770
6e76b35d 771
a660d684
KB
772\membersection{wxDC::GetTextForeground}\label{wxdcgettextforeground}
773
f6bcfd97
BP
774\constfunc{const wxColour\&}{GetTextForeground}{\void}
775
a660d684
KB
776Gets the current text foreground colour (see \helpref{wxDC::SetTextForeground}{wxdcsettextforeground}).
777
16964b5e
VS
778
779\membersection{wxDC::GetUserScale}\label{wxdcgetuserscale}
780
781\func{void}{GetUserScale}{\param{double}{ *x}, \param{double}{ *y}}
782
783Gets the current user scale factor (set by \helpref{SetUserScale}{wxdcsetuserscale}).
784
2edb0bde 785\perlnote{In wxPerl this method takes no arguments and return a two element
0a67eeac 786 array {\tt ( x, y )}}
16964b5e 787
6e76b35d 788
a660d684
KB
789\membersection{wxDC::LogicalToDeviceX}\label{wxdclogicaltodevicex}
790
1f897d25 791\func{wxCoord}{LogicalToDeviceX}{\param{wxCoord}{ x}}
a660d684
KB
792
793Converts logical X coordinate to device coordinate, using the current
794mapping mode.
795
6e76b35d 796
a660d684
KB
797\membersection{wxDC::LogicalToDeviceXRel}\label{wxdclogicaltodevicexrel}
798
1f897d25 799\func{wxCoord}{LogicalToDeviceXRel}{\param{wxCoord}{ x}}
a660d684
KB
800
801Converts logical X coordinate to relative device coordinate, using the current
1387b68a
GD
802mapping mode but ignoring the x axis orientation.
803Use this for converting a width, for example.
a660d684 804
6e76b35d 805
a660d684
KB
806\membersection{wxDC::LogicalToDeviceY}\label{wxdclogicaltodevicey}
807
1f897d25 808\func{wxCoord}{LogicalToDeviceY}{\param{wxCoord}{ y}}
a660d684
KB
809
810Converts logical Y coordinate to device coordinate, using the current
811mapping mode.
812
6e76b35d 813
a660d684
KB
814\membersection{wxDC::LogicalToDeviceYRel}\label{wxdclogicaltodeviceyrel}
815
1f897d25 816\func{wxCoord}{LogicalToDeviceYRel}{\param{wxCoord}{ y}}
a660d684
KB
817
818Converts logical Y coordinate to relative device coordinate, using the current
1387b68a
GD
819mapping mode but ignoring the y axis orientation.
820Use this for converting a height, for example.
a660d684 821
6e76b35d 822
a660d684
KB
823\membersection{wxDC::MaxX}\label{wxdcmaxx}
824
1f897d25 825\func{wxCoord}{MaxX}{\void}
a660d684
KB
826
827Gets the maximum horizontal extent used in drawing commands so far.
828
6e76b35d 829
a660d684
KB
830\membersection{wxDC::MaxY}\label{wxdcmaxy}
831
1f897d25 832\func{wxCoord}{MaxY}{\void}
a660d684
KB
833
834Gets the maximum vertical extent used in drawing commands so far.
835
6e76b35d 836
a660d684
KB
837\membersection{wxDC::MinX}\label{wxdcminx}
838
1f897d25 839\func{wxCoord}{MinX}{\void}
a660d684
KB
840
841Gets the minimum horizontal extent used in drawing commands so far.
842
6e76b35d 843
a660d684
KB
844\membersection{wxDC::MinY}\label{wxdcminy}
845
1f897d25 846\func{wxCoord}{MinY}{\void}
a660d684
KB
847
848Gets the minimum vertical extent used in drawing commands so far.
849
6e76b35d 850
a660d684
KB
851\membersection{wxDC::Ok}\label{wxdcok}
852
853\func{bool}{Ok}{\void}
854
cc81d32f 855Returns true if the DC is ok to use.
a660d684 856
6e76b35d 857
f6bcfd97
BP
858\membersection{wxDC::ResetBoundingBox}\label{wxdcresetboundingbox}
859
860\func{void}{ResetBoundingBox}{\void}
861
862Resets the bounding box: after a call to this function, the bounding box
863doesn't contain anything.
864
865\wxheading{See also}
866
867\helpref{CalcBoundingBox}{wxdccalcboundingbox}
868
6e76b35d 869
1387b68a
GD
870\membersection{wxDC::SetAxisOrientation}\label{wxdcsetaxisorientation}
871
872\func{void}{SetAxisOrientation}{\param{bool}{ xLeftRight},
873 \param{bool}{ yBottomUp}}
874
875Sets the x and y axis orientation (i.e., the direction from lowest to
1d3f4b50
JS
876highest values on the axis). The default orientation is
877x axis from left to right and y axis from top down.
1387b68a
GD
878
879\wxheading{Parameters}
880
881\docparam{xLeftRight}{True to set the x axis orientation to the natural
882left to right orientation, false to invert it.}
883
884\docparam{yBottomUp}{True to set the y axis orientation to the natural
885bottom up orientation, false to invert it.}
886
6e76b35d 887
a660d684
KB
888\membersection{wxDC::SetBackground}\label{wxdcsetbackground}
889
890\func{void}{SetBackground}{\param{const wxBrush\& }{brush}}
891
892Sets the current background brush for the DC.
893
6e76b35d 894
a660d684
KB
895\membersection{wxDC::SetBackgroundMode}\label{wxdcsetbackgroundmode}
896
897\func{void}{SetBackgroundMode}{\param{int}{ mode}}
898
899{\it mode} may be one of wxSOLID and wxTRANSPARENT. This setting determines
900whether text will be drawn with a background colour or not.
901
6e76b35d 902
f70c0443
WS
903\membersection{wxDC::SetBrush}\label{wxdcsetbrush}
904
905\func{void}{SetBrush}{\param{const wxBrush\& }{brush}}
906
907Sets the current brush for the DC.
908
909If the argument is wxNullBrush, the current brush is selected out of the device
910context, and the original brush restored, allowing the current brush to
911be destroyed safely.
912
913See also \helpref{wxBrush}{wxbrush}.
914
915See also \helpref{wxMemoryDC}{wxmemorydc} for the interpretation of colours
916when drawing into a monochrome bitmap.
917
918
a660d684
KB
919\membersection{wxDC::SetClippingRegion}\label{wxdcsetclippingregion}
920
1f897d25 921\func{void}{SetClippingRegion}{\param{wxCoord}{ x}, \param{wxCoord}{ y}, \param{wxCoord}{ width}, \param{wxCoord}{ height}}
a660d684 922
5230934a
VZ
923\func{void}{SetClippingRegion}{\param{const wxPoint\& }{pt}, \param{const wxSize\& }{sz}}
924
925\func{void}{SetClippingRegion}{\param{const wxRect\&}{ rect}}
926
a724d789
JS
927\func{void}{SetClippingRegion}{\param{const wxRegion\&}{ region}}
928
5230934a
VZ
929Sets the clipping region for this device context to the intersection of the
930given region described by the parameters of this method and the previously set
931clipping region. You should call
932\helpref{DestroyClippingRegion}{wxdcdestroyclippingregion} if you want to set
933the clipping region exactly to the region specified.
934
935The clipping region is an area to which drawing is restricted. Possible uses
936for the clipping region are for clipping text or for speeding up window redraws
937when only a known area of the screen is damaged.
a660d684 938
a724d789
JS
939\wxheading{See also}
940
941\helpref{wxDC::DestroyClippingRegion}{wxdcdestroyclippingregion}, \helpref{wxRegion}{wxregion}
a660d684 942
6e76b35d 943
f70c0443 944\membersection{wxDC::SetDeviceOrigin}\label{wxdcsetdeviceorigin}
a660d684 945
f70c0443 946\func{void}{SetDeviceOrigin}{\param{wxCoord}{ x}, \param{wxCoord}{ y}}
a660d684 947
f70c0443
WS
948Sets the device origin (i.e., the origin in pixels after scaling has been
949applied).
a660d684 950
f70c0443
WS
951This function may be useful in Windows printing
952operations for placing a graphic on a page.
9000c624 953
6e76b35d 954
a660d684
KB
955\membersection{wxDC::SetFont}\label{wxdcsetfont}
956
957\func{void}{SetFont}{\param{const wxFont\& }{font}}
958
3e482a64
VZ
959Sets the current font for the DC. It must be a valid font, in particular you
960should not pass {\tt wxNullFont} to this method.
a660d684
KB
961
962See also \helpref{wxFont}{wxfont}.
963
6e76b35d 964
a660d684
KB
965\membersection{wxDC::SetLogicalFunction}\label{wxdcsetlogicalfunction}
966
967\func{void}{SetLogicalFunction}{\param{int}{ function}}
968
fe604ccd 969Sets the current logical function for the device context. This determines how
a660d684
KB
970a source pixel (from a pen or brush colour, or source device context if
971using \helpref{wxDC::Blit}{wxdcblit}) combines with a destination pixel in the
972current device context.
973
974The possible values
975and their meaning in terms of source and destination pixel values are
976as follows:
977
978\begin{verbatim}
979wxAND src AND dst
980wxAND_INVERT (NOT src) AND dst
981wxAND_REVERSE src AND (NOT dst)
982wxCLEAR 0
983wxCOPY src
984wxEQUIV (NOT src) XOR dst
985wxINVERT NOT dst
986wxNAND (NOT src) OR (NOT dst)
987wxNOR (NOT src) AND (NOT dst)
988wxNO_OP dst
989wxOR src OR dst
990wxOR_INVERT (NOT src) OR dst
991wxOR_REVERSE src OR (NOT dst)
992wxSET 1
993wxSRC_INVERT NOT src
994wxXOR src XOR dst
995\end{verbatim}
996
997The default is wxCOPY, which simply draws with the current colour.
998The others combine the current colour and the background using a
6453876e 999logical operation. wxINVERT is commonly used for drawing rubber bands or
a660d684
KB
1000moving outlines, since drawing twice reverts to the original colour.
1001
6e76b35d 1002
a660d684
KB
1003\membersection{wxDC::SetMapMode}\label{wxdcsetmapmode}
1004
1005\func{void}{SetMapMode}{\param{int}{ int}}
1006
1007The {\it mapping mode} of the device context defines the unit of
1008measurement used to convert logical units to device units. Note that
1009in X, text drawing isn't handled consistently with the mapping mode; a
1010font is always specified in point size. However, setting the {\it
1011user scale} (see \helpref{wxDC::SetUserScale}{wxdcsetuserscale}) scales the text appropriately. In
2edb0bde 1012Windows, scalable TrueType fonts are always used; in X, results depend
a660d684
KB
1013on availability of fonts, but usually a reasonable match is found.
1014
03ca23b6 1015The coordinate origin is always at the top left of the screen/printer.
a660d684 1016
03ca23b6
JS
1017Drawing to a Windows printer device context uses the current mapping mode,
1018but mapping mode is currently ignored for PostScript output.
a660d684
KB
1019
1020The mapping mode can be one of the following:
1021
1022\begin{twocollist}\itemsep=0pt
e3065973 1023\twocolitem{wxMM\_TWIPS}{Each logical unit is 1/20 of a point, or 1/1440 of
a660d684 1024 an inch.}
e3065973
JS
1025\twocolitem{wxMM\_POINTS}{Each logical unit is a point, or 1/72 of an inch.}
1026\twocolitem{wxMM\_METRIC}{Each logical unit is 1 mm.}
1027\twocolitem{wxMM\_LOMETRIC}{Each logical unit is 1/10 of a mm.}
1028\twocolitem{wxMM\_TEXT}{Each logical unit is 1 pixel.}
a660d684
KB
1029\end{twocollist}
1030
6e76b35d 1031
f70c0443
WS
1032\membersection{wxDC::SetPalette}\label{wxdcsetpalette}
1033
1034\func{void}{SetPalette}{\param{const wxPalette\& }{palette}}
1035
1036If this is a window DC or memory DC, assigns the given palette to the window
1037or bitmap associated with the DC. If the argument is wxNullPalette, the current
1038palette is selected out of the device context, and the original palette
1039restored.
1040
1041See \helpref{wxPalette}{wxpalette} for further details.
1042
1043
a660d684
KB
1044\membersection{wxDC::SetPen}\label{wxdcsetpen}
1045
1046\func{void}{SetPen}{\param{const wxPen\& }{pen}}
1047
1048Sets the current pen for the DC.
1049
1050If the argument is wxNullPen, the current pen is selected out of the device
1051context, and the original pen restored.
1052
9000c624
RR
1053See also \helpref{wxMemoryDC}{wxmemorydc} for the interpretation of colours
1054when drawing into a monochrome bitmap.
1055
6e76b35d 1056
a660d684
KB
1057\membersection{wxDC::SetTextBackground}\label{wxdcsettextbackground}
1058
1059\func{void}{SetTextBackground}{\param{const wxColour\& }{colour}}
1060
1061Sets the current text background colour for the DC.
1062
6e76b35d 1063
a660d684
KB
1064\membersection{wxDC::SetTextForeground}\label{wxdcsettextforeground}
1065
1066\func{void}{SetTextForeground}{\param{const wxColour\& }{colour}}
1067
1068Sets the current text foreground colour for the DC.
1069
9000c624
RR
1070See also \helpref{wxMemoryDC}{wxmemorydc} for the interpretation of colours
1071when drawing into a monochrome bitmap.
1072
6e76b35d 1073
a660d684
KB
1074\membersection{wxDC::SetUserScale}\label{wxdcsetuserscale}
1075
1076\func{void}{SetUserScale}{\param{double}{ xScale}, \param{double}{ yScale}}
1077
1078Sets the user scaling factor, useful for applications which require
1079`zooming'.
1080
6e76b35d 1081
a660d684
KB
1082\membersection{wxDC::StartDoc}\label{wxdcstartdoc}
1083
1084\func{bool}{StartDoc}{\param{const wxString\& }{message}}
1085
1086Starts a document (only relevant when outputting to a printer).
5b5035ce 1087Message is a message to show while printing.
a660d684 1088
6e76b35d 1089
a660d684
KB
1090\membersection{wxDC::StartPage}\label{wxdcstartpage}
1091
1092\func{bool}{StartPage}{\void}
1093
1094Starts a document page (only relevant when outputting to a printer).
1095
6c975af1
VZ
1096\section{\class{wxDCClipper}}\label{wxdcclipper}
1097
3980000c 1098This is a small helper class which sets the specified DC to its constructor
2edb0bde 1099clipping region and then automatically destroys it in its destructor. Using
3980000c 1100it ensures that an unwanted clipping region is not left set on the DC.
6c975af1
VZ
1101
1102\wxheading{Derived from}
1103
1104No base class
1105
1106\wxheading{Include files}
1107
1108<wx/dc.h>
1109
1110\wxheading{See also}
1111
1112\helpref{wxDC}{wxdc}
1113
1114\latexignore{\rtfignore{\wxheading{Members}}}
1115
6e76b35d 1116
b236c10f 1117\membersection{wxDCClipper::wxDCClipper}\label{wxdcclipperctor}
6c975af1
VZ
1118
1119\func{}{wxDCClipper}{\param{wxDC\& }{dc}, \param{wxCoord }{x},\param{wxCoord }{y},\param{wxCoord }{w},\param{wxCoord }{h},}
1120
1121\func{}{wxDCClipper}{\param{wxDC\& }{dc}, \param{const wxRect\&}{ rect}}
1122
43e8916f 1123Constructor: sets the clipping region for the given device context to the
6c975af1
VZ
1124specified rectangle.
1125
6e76b35d 1126
b236c10f 1127\membersection{wxDCClipper::\destruct{wxDCClipper}}\label{wxdcclipperdtor}
6c975af1
VZ
1128
1129\func{}{\destruct{wxDCClipper}}{\void}
1130
2edb0bde 1131Destructor: destroys the clipping region set in the constructor.
6c975af1 1132