source: trunk/include/qpainter.h@ 8

Last change on this file since 8 was 8, checked in by dmik, 20 years ago

Transferred Qt for OS/2 version 3.3.1-rc5 sources from the CVS

  • Property svn:keywords set to Id
File size: 22.2 KB
Line 
1/****************************************************************************
2** $Id: qpainter.h 8 2005-11-16 19:36:46Z dmik $
3**
4** Definition of QPainter class
5**
6** Created : 940112
7**
8** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
9**
10** This file is part of the kernel module of the Qt GUI Toolkit.
11**
12** This file may be distributed under the terms of the Q Public License
13** as defined by Trolltech AS of Norway and appearing in the file
14** LICENSE.QPL included in the packaging of this file.
15**
16** This file may be distributed and/or modified under the terms of the
17** GNU General Public License version 2 as published by the Free Software
18** Foundation and appearing in the file LICENSE.GPL included in the
19** packaging of this file.
20**
21** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
22** licenses may use this file in accordance with the Qt Commercial License
23** Agreement provided with the Software.
24**
25** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
26** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27**
28** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
29** information about Qt Commercial License Agreements.
30** See http://www.trolltech.com/qpl/ for QPL licensing information.
31** See http://www.trolltech.com/gpl/ for GPL licensing information.
32**
33** Contact info@trolltech.com if any conditions of this licensing are
34** not clear to you.
35**
36**********************************************************************/
37
38#ifndef QPAINTER_H
39#define QPAINTER_H
40
41
42#ifndef QT_H
43#include "qcolor.h"
44#include "qfontmetrics.h"
45#include "qfontinfo.h"
46#include "qregion.h"
47#include "qpen.h"
48#include "qbrush.h"
49#include "qpointarray.h"
50#include "qwmatrix.h"
51#endif // QT_H
52
53class QGfx;
54class QTextCodec;
55class QTextParag;
56class QPaintDevice;
57class QTextItem;
58#if defined( Q_WS_MAC )
59class QMacSavedPortInfo;
60#endif
61class QPainterPrivate;
62
63class Q_EXPORT QPainter : public Qt
64{
65public:
66 enum CoordinateMode { CoordDevice, CoordPainter };
67
68 QPainter();
69 QPainter( const QPaintDevice *, bool unclipped = FALSE );
70 QPainter( const QPaintDevice *, const QWidget *, bool unclipped = FALSE );
71 ~QPainter();
72
73 bool begin( const QPaintDevice *, bool unclipped = FALSE );
74 bool begin( const QPaintDevice *, const QWidget *, bool unclipped = FALSE );
75 bool end();
76 QPaintDevice *device() const;
77
78#ifdef Q_WS_QWS
79 QGfx * internalGfx();
80#endif
81
82 static void redirect( QPaintDevice *pdev, QPaintDevice *replacement );
83 static QPaintDevice *redirect( QPaintDevice *pdev );
84
85 bool isActive() const;
86
87 void flush( const QRegion &region, CoordinateMode cm = CoordDevice );
88 void flush();
89 void save();
90 void restore();
91
92 // Drawing tools
93
94 QFontMetrics fontMetrics() const;
95 QFontInfo fontInfo() const;
96
97 const QFont &font() const;
98 void setFont( const QFont & );
99 const QPen &pen() const;
100 void setPen( const QPen & );
101 void setPen( PenStyle );
102 void setPen( const QColor & );
103 const QBrush &brush() const;
104 void setBrush( const QBrush & );
105 void setBrush( BrushStyle );
106 void setBrush( const QColor & );
107 QPoint pos() const;
108
109 // Drawing attributes/modes
110
111 const QColor &backgroundColor() const;
112 void setBackgroundColor( const QColor & );
113 BGMode backgroundMode() const;
114 void setBackgroundMode( BGMode );
115 RasterOp rasterOp() const;
116 void setRasterOp( RasterOp );
117 const QPoint &brushOrigin() const;
118 void setBrushOrigin( int x, int y );
119 void setBrushOrigin( const QPoint & );
120
121 // Scaling and transformations
122
123// PaintUnit unit() const; // get set painter unit
124// void setUnit( PaintUnit ); // NOT IMPLEMENTED!!!
125
126 bool hasViewXForm() const;
127 bool hasWorldXForm() const;
128
129#ifndef QT_NO_TRANSFORMATIONS
130 void setViewXForm( bool ); // set xform on/off
131 QRect window() const; // get window
132 void setWindow( const QRect & ); // set window
133 void setWindow( int x, int y, int w, int h );
134 QRect viewport() const; // get viewport
135 void setViewport( const QRect & ); // set viewport
136 void setViewport( int x, int y, int w, int h );
137
138 void setWorldXForm( bool ); // set world xform on/off
139 const QWMatrix &worldMatrix() const; // get/set world xform matrix
140 void setWorldMatrix( const QWMatrix &, bool combine=FALSE );
141
142 void saveWorldMatrix();
143 void restoreWorldMatrix();
144
145 void scale( double sx, double sy );
146 void shear( double sh, double sv );
147 void rotate( double a );
148#endif
149 void translate( double dx, double dy );
150 void resetXForm();
151 double translationX() const;
152 double translationY() const;
153
154 QPoint xForm( const QPoint & ) const; // map virtual -> device
155 QRect xForm( const QRect & ) const;
156 QPointArray xForm( const QPointArray & ) const;
157 QPointArray xForm( const QPointArray &, int index, int npoints ) const;
158 QPoint xFormDev( const QPoint & ) const; // map device -> virtual
159 QRect xFormDev( const QRect & ) const;
160 QPointArray xFormDev( const QPointArray & ) const;
161 QPointArray xFormDev( const QPointArray &, int index, int npoints ) const;
162
163 // Clipping
164
165 void setClipping( bool ); // set clipping on/off
166 bool hasClipping() const;
167 QRegion clipRegion( CoordinateMode = CoordDevice ) const;
168 void setClipRect( const QRect &, CoordinateMode = CoordDevice ); // set clip rectangle
169 void setClipRect( int x, int y, int w, int h, CoordinateMode = CoordDevice );
170 void setClipRegion( const QRegion &, CoordinateMode = CoordDevice );// set clip region
171
172 // Graphics drawing functions
173
174 void drawPoint( int x, int y );
175 void drawPoint( const QPoint & );
176 void drawPoints( const QPointArray& a,
177 int index=0, int npoints=-1 );
178 void moveTo( int x, int y );
179 void moveTo( const QPoint & );
180 void lineTo( int x, int y );
181 void lineTo( const QPoint & );
182 void drawLine( int x1, int y1, int x2, int y2 );
183 void drawLine( const QPoint &, const QPoint & );
184 void drawRect( int x, int y, int w, int h );
185 void drawRect( const QRect & );
186 void drawWinFocusRect( int x, int y, int w, int h );
187 void drawWinFocusRect( int x, int y, int w, int h,
188 const QColor &bgColor );
189 void drawWinFocusRect( const QRect & );
190 void drawWinFocusRect( const QRect &,
191 const QColor &bgColor );
192 void drawRoundRect( int x, int y, int w, int h, int = 25, int = 25 );
193 void drawRoundRect( const QRect &, int = 25, int = 25 );
194 void drawEllipse( int x, int y, int w, int h );
195 void drawEllipse( const QRect & );
196 void drawArc( int x, int y, int w, int h, int a, int alen );
197 void drawArc( const QRect &, int a, int alen );
198 void drawPie( int x, int y, int w, int h, int a, int alen );
199 void drawPie( const QRect &, int a, int alen );
200 void drawChord( int x, int y, int w, int h, int a, int alen );
201 void drawChord( const QRect &, int a, int alen );
202 void drawLineSegments( const QPointArray &,
203 int index=0, int nlines=-1 );
204 void drawPolyline( const QPointArray &,
205 int index=0, int npoints=-1 );
206 void drawPolygon( const QPointArray &, bool winding=FALSE,
207 int index=0, int npoints=-1 );
208 void drawConvexPolygon( const QPointArray &,
209 int index=0, int npoints=-1 );
210#ifndef QT_NO_BEZIER
211 void drawCubicBezier( const QPointArray &, int index=0 );
212#endif
213 void drawPixmap( int x, int y, const QPixmap &,
214 int sx=0, int sy=0, int sw=-1, int sh=-1 );
215 void drawPixmap( const QPoint &, const QPixmap &,
216 const QRect &sr );
217 void drawPixmap( const QPoint &, const QPixmap & );
218 void drawPixmap( const QRect &, const QPixmap & );
219 void drawImage( int x, int y, const QImage &,
220 int sx = 0, int sy = 0, int sw = -1, int sh = -1,
221 int conversionFlags = 0 );
222 void drawImage( const QPoint &, const QImage &,
223 const QRect &sr, int conversionFlags = 0 );
224 void drawImage( const QPoint &, const QImage &,
225 int conversion_flags = 0 );
226 void drawImage( const QRect &, const QImage & );
227 void drawTiledPixmap( int x, int y, int w, int h, const QPixmap &,
228 int sx=0, int sy=0 );
229 void drawTiledPixmap( const QRect &, const QPixmap &,
230 const QPoint & );
231 void drawTiledPixmap( const QRect &, const QPixmap & );
232#ifndef QT_NO_PICTURE
233 void drawPicture( const QPicture & );
234 void drawPicture( int x, int y, const QPicture & );
235 void drawPicture( const QPoint &, const QPicture & );
236#endif
237
238 void fillRect( int x, int y, int w, int h, const QBrush & );
239 void fillRect( const QRect &, const QBrush & );
240 void eraseRect( int x, int y, int w, int h );
241 void eraseRect( const QRect & );
242
243 // Text drawing functions
244
245 enum TextDirection {
246 Auto,
247 RTL,
248 LTR
249 };
250
251 void drawText( int x, int y, const QString &, int len = -1, TextDirection dir = Auto );
252 void drawText( const QPoint &, const QString &, int len = -1, TextDirection dir = Auto );
253
254 void drawText( int x, int y, const QString &, int pos, int len, TextDirection dir = Auto );
255 void drawText( const QPoint &p, const QString &, int pos, int len, TextDirection dir = Auto );
256
257 void drawText( int x, int y, int w, int h, int flags,
258 const QString&, int len = -1, QRect *br=0,
259 QTextParag **intern=0 );
260 void drawText( const QRect &, int flags,
261 const QString&, int len = -1, QRect *br=0,
262 QTextParag **intern=0 );
263
264 void drawTextItem( int x, int y, const QTextItem &ti, int textflags = 0 );
265 void drawTextItem( const QPoint& p, const QTextItem &ti, int textflags = 0 );
266
267 QRect boundingRect( int x, int y, int w, int h, int flags,
268 const QString&, int len = -1, QTextParag **intern=0 );
269 QRect boundingRect( const QRect &, int flags,
270 const QString&, int len = -1, QTextParag **intern=0 );
271
272 int tabStops() const;
273 void setTabStops( int );
274 int *tabArray() const;
275 void setTabArray( int * );
276
277 // Other functions
278
279#if defined(Q_WS_WIN)
280 HDC handle() const;
281#elif defined(Q_WS_PM)
282 HPS handle() const;
283#elif defined(Q_WS_X11) || defined(Q_WS_MAC)
284 HANDLE handle() const;
285#endif
286
287
288 static void initialize();
289 static void cleanup();
290
291private:
292 void init();
293 void destroy();
294 void updateFont();
295 void updatePen();
296 void updateBrush();
297#ifndef QT_NO_TRANSFORMATIONS
298 void updateXForm();
299 void updateInvXForm();
300#endif
301 void map( int, int, int *rx, int *ry ) const;
302 void map( int, int, int, int, int *, int *, int *, int * ) const;
303 void mapInv( int, int, int *, int * ) const;
304 void mapInv( int, int, int, int, int *, int *, int *, int * ) const;
305#if defined(Q_WS_PM)
306 void drawPolyInternal( const QPointArray &, bool close=TRUE,
307 bool winding=FALSE, int index=0, int npoints=-1,
308 bool disjoint=FALSE );
309 enum ArcClose { CloseNone, CloseChord, ClosePie };
310 void drawArcInternal( int x, int y, int w, int h, int a = 0,
311 int alen = 360*16, ArcClose close = CloseChord );
312 void drawWinFocusRectInternal( int x, int y, int w, int h,
313 const QColor &bgCol, bool xormode );
314 void drawRectInternal( int x, int y, int w, int h, int wRnd, int hRnd );
315#else
316 void drawPolyInternal( const QPointArray &, bool close=TRUE );
317#endif
318 void drawWinFocusRect( int x, int y, int w, int h, bool xorPaint,
319 const QColor &penColor );
320
321 enum { IsActive=0x01, ExtDev=0x02, IsStartingUp=0x04, NoCache=0x08,
322 VxF=0x10, WxF=0x20, ClipOn=0x40, SafePolygon=0x80, MonoDev=0x100,
323 DirtyFont=0x200, DirtyPen=0x400, DirtyBrush=0x800,
324 RGBColor=0x1000, FontMet=0x2000, FontInf=0x4000, CtorBegin=0x8000,
325 UsePrivateCx = 0x10000, VolatileDC = 0x20000, Qt2Compat = 0x40000 };
326 uint flags;
327 bool testf( uint b ) const { return (flags&b)!=0; }
328 void setf( uint b ) { flags |= b; }
329 void setf( uint b, bool v );
330 void clearf( uint b ) { flags &= (uint)(~b); }
331 void fix_neg_rect( int *x, int *y, int *w, int *h );
332
333 QPainterPrivate *d;
334 QPaintDevice *pdev;
335 QColor bg_col;
336 uchar bg_mode;
337 uchar rop;
338 uchar pu;
339 QPoint bro;
340 QFont cfont;
341 QFont *pfont; // font used for metrics (might be different for printers)
342 QPen cpen;
343 QBrush cbrush;
344 QRegion crgn;
345 int tabstops;
346 int *tabarray;
347 int tabarraylen;
348 bool block_ext; // for temporary blocking of external devices
349
350 // Transformations
351#ifndef QT_NO_TRANSFORMATIONS
352 QCOORD wx, wy, ww, wh;
353 QCOORD vx, vy, vw, vh;
354 QWMatrix wxmat;
355
356 // Cached composition (and inverse) of transformations
357 QWMatrix xmat;
358 QWMatrix ixmat;
359
360
361
362 double m11() const { return xmat.m11(); }
363 double m12() const { return xmat.m12(); }
364 double m21() const { return xmat.m21(); }
365 double m22() const { return xmat.m22(); }
366 double dx() const { return xmat.dx(); }
367 double dy() const { return xmat.dy(); }
368 double im11() const { return ixmat.m11(); }
369 double im12() const { return ixmat.m12(); }
370 double im21() const { return ixmat.m21(); }
371 double im22() const { return ixmat.m22(); }
372 double idx() const { return ixmat.dx(); }
373 double idy() const { return ixmat.dy(); }
374
375 int txop;
376 bool txinv;
377
378#else
379 // even without transformations we still have translations
380 int xlatex;
381 int xlatey;
382#endif
383
384#if !defined(Q_WS_PM)
385 void *penRef; // pen cache ref
386 void *brushRef; // brush cache ref
387#endif
388 void *ps_stack;
389 void *wm_stack;
390 void killPStack();
391
392protected:
393#ifdef Q_OS_TEMP
394 QPoint internalCurrentPos;
395 uint old_pix; // ### All win platforms in 4.0
396#endif
397#if defined(Q_WS_WIN)
398 friend class QFontEngineWin;
399 friend class QFontEngineBox;
400 QT_WIN_PAINTER_MEMBERS
401#elif defined(Q_WS_PM)
402 bool setNativeXForm( bool assumeYNegation );
403 void clearNativeXForm();
404 friend class QFontEnginePM;
405 HPS hps;
406 HPAL holdpal;
407 HRGN holdrgn;
408 HBITMAP hbrushbm;
409 uint nocolBrush : 1;
410 uint pixmapBrush : 1;
411 int devh;
412 QRegion repaintRgn;
413#elif defined(Q_WS_X11)
414 friend class QFontEngineXLFD;
415 friend class QFontEngineXft;
416 friend class QFontEngineBox;
417 Display *dpy; // current display
418 int scrn; // current screen
419 Qt::HANDLE hd; // handle to drawable
420 Qt::HANDLE rendhd; // handle to Xft draw
421 GC gc; // graphics context (standard)
422 GC gc_brush; // graphics contect for brush
423 QPoint curPt; // current point
424 uint clip_serial; // clipping serial number
425#elif defined(Q_WS_MAC)
426 Qt::HANDLE hd; // handle to drawable
427 void initPaintDevice(bool force=FALSE, QPoint *off=NULL, QRegion *rgn=NULL);
428 friend const QRegion &qt_mac_update_painter(QPainter *, bool);
429 friend class QFontEngineMac;
430 friend class QMacPainter;
431#elif defined(Q_WS_QWS)
432 friend class QFontEngine;
433 QGfx * gfx;
434 friend void qwsUpdateActivePainters();
435#endif
436 friend class QFontMetrics;
437 friend class QFontInfo;
438 friend class QTextLayout;
439 friend void qt_format_text( const QFont &, const QRect &r,
440 int tf, const QString& str, int len, QRect *brect,
441 int tabstops, int* tabarray, int tabarraylen,
442 QTextParag **internal, QPainter* painter );
443 friend void qt_draw_background( QPainter *p, int x, int y, int w, int h );
444 friend void qt_draw_transformed_rect( QPainter *p, int x, int y, int w, int h, bool fill );
445 friend class QPrinter;
446
447private: // Disabled copy constructor and operator=
448#if defined(Q_DISABLE_COPY)
449 QPainter( const QPainter & );
450 QPainter &operator=( const QPainter & );
451#endif
452
453 enum TransformationCodes {
454 TxNone = 0, // transformation codes
455 TxTranslate = 1, // copy in qpainter_*.cpp
456 TxScale = 2,
457 TxRotShear = 3
458 };
459};
460
461
462/*****************************************************************************
463 QPainter member functions
464 *****************************************************************************/
465
466inline QPaintDevice *QPainter::device() const
467{
468 return pdev;
469}
470
471inline bool QPainter::isActive() const
472{
473 return testf(IsActive);
474}
475
476inline const QFont &QPainter::font() const
477{
478 return cfont;
479}
480
481inline const QPen &QPainter::pen() const
482{
483 return cpen;
484}
485
486inline const QBrush &QPainter::brush() const
487{
488 return cbrush;
489}
490
491/*
492inline PaintUnit QPainter::unit() const
493{
494 return (PaintUnit)pu;
495}
496*/
497
498inline const QColor &QPainter::backgroundColor() const
499{
500 return bg_col;
501}
502
503inline Qt::BGMode QPainter::backgroundMode() const
504{
505 return (BGMode)bg_mode;
506}
507
508inline Qt::RasterOp QPainter::rasterOp() const
509{
510 return (RasterOp)rop;
511}
512
513inline const QPoint &QPainter::brushOrigin() const
514{
515 return bro;
516}
517
518inline bool QPainter::hasViewXForm() const
519{
520#ifndef QT_NO_TRANSFORMATIONS
521 return testf(VxF);
522#else
523 return xlatex || xlatey;
524#endif
525}
526
527inline bool QPainter::hasWorldXForm() const
528{
529#ifndef QT_NO_TRANSFORMATIONS
530 return testf(WxF);
531#else
532 return xlatex || xlatey;
533#endif
534}
535
536inline double QPainter::translationX() const
537{
538#ifndef QT_NO_TRANSFORMATIONS
539 return worldMatrix().dx();
540#else
541 return xlatex;
542#endif
543}
544
545inline double QPainter::translationY() const
546{
547#ifndef QT_NO_TRANSFORMATIONS
548 return worldMatrix().dy();
549#else
550 return xlatey;
551#endif
552}
553
554
555inline bool QPainter::hasClipping() const
556{
557 return testf(ClipOn);
558}
559
560inline int QPainter::tabStops() const
561{
562 return tabstops;
563}
564
565inline int *QPainter::tabArray() const
566{
567 return tabarray;
568}
569
570#if defined(Q_WS_WIN)
571inline HDC QPainter::handle() const
572{
573 return hdc;
574}
575#elif defined(Q_WS_PM)
576inline HPS QPainter::handle() const
577{
578 return hps;
579}
580#elif defined(Q_WS_X11) || defined(Q_WS_MAC)
581inline Qt::HANDLE QPainter::handle() const
582{
583 return hd;
584}
585#endif
586
587inline void QPainter::setBrushOrigin( const QPoint &p )
588{
589 setBrushOrigin( p.x(), p.y() );
590}
591
592#ifndef QT_NO_TRANSFORMATIONS
593inline void QPainter::setWindow( const QRect &r )
594{
595 setWindow( r.x(), r.y(), r.width(), r.height() );
596}
597
598inline void QPainter::setViewport( const QRect &r )
599{
600 setViewport( r.x(), r.y(), r.width(), r.height() );
601}
602#endif
603
604inline void QPainter::setClipRect( int x, int y, int w, int h, CoordinateMode m )
605{
606 setClipRect( QRect(x,y,w,h), m );
607}
608
609inline void QPainter::drawPoint( const QPoint &p )
610{
611 drawPoint( p.x(), p.y() );
612}
613
614inline void QPainter::moveTo( const QPoint &p )
615{
616 moveTo( p.x(), p.y() );
617}
618
619inline void QPainter::lineTo( const QPoint &p )
620{
621 lineTo( p.x(), p.y() );
622}
623
624inline void QPainter::drawLine( const QPoint &p1, const QPoint &p2 )
625{
626 drawLine( p1.x(), p1.y(), p2.x(), p2.y() );
627}
628
629inline void QPainter::drawRect( const QRect &r )
630{
631 drawRect( r.x(), r.y(), r.width(), r.height() );
632}
633
634inline void QPainter::drawWinFocusRect( const QRect &r )
635{
636 drawWinFocusRect( r.x(), r.y(), r.width(), r.height() );
637}
638
639inline void QPainter::drawWinFocusRect( const QRect &r,const QColor &penColor )
640{
641 drawWinFocusRect( r.x(), r.y(), r.width(), r.height(), penColor );
642}
643
644inline void QPainter::drawRoundRect( const QRect &r, int xRnd, int yRnd )
645{
646 drawRoundRect( r.x(), r.y(), r.width(), r.height(), xRnd, yRnd );
647}
648
649inline void QPainter::drawEllipse( const QRect &r )
650{
651 drawEllipse( r.x(), r.y(), r.width(), r.height() );
652}
653
654inline void QPainter::drawArc( const QRect &r, int a, int alen )
655{
656 drawArc( r.x(), r.y(), r.width(), r.height(), a, alen );
657}
658
659inline void QPainter::drawPie( const QRect &r, int a, int alen )
660{
661 drawPie( r.x(), r.y(), r.width(), r.height(), a, alen );
662}
663
664inline void QPainter::drawChord( const QRect &r, int a, int alen )
665{
666 drawChord( r.x(), r.y(), r.width(), r.height(), a, alen );
667}
668
669inline void QPainter::drawPixmap( const QPoint &p, const QPixmap &pm,
670 const QRect &sr )
671{
672 drawPixmap( p.x(), p.y(), pm, sr.x(), sr.y(), sr.width(), sr.height() );
673}
674
675inline void QPainter::drawImage( const QPoint &p, const QImage &pm,
676 const QRect &sr, int conversionFlags )
677{
678 drawImage( p.x(), p.y(), pm,
679 sr.x(), sr.y(), sr.width(), sr.height(), conversionFlags );
680}
681
682inline void QPainter::drawTiledPixmap( const QRect &r, const QPixmap &pm,
683 const QPoint &sp )
684{
685 drawTiledPixmap( r.x(), r.y(), r.width(), r.height(), pm, sp.x(), sp.y() );
686}
687
688inline void QPainter::drawTiledPixmap( const QRect &r, const QPixmap &pm )
689{
690 drawTiledPixmap( r.x(), r.y(), r.width(), r.height(), pm, 0, 0 );
691}
692
693inline void QPainter::fillRect( const QRect &r, const QBrush &brush )
694{
695 fillRect( r.x(), r.y(), r.width(), r.height(), brush );
696}
697
698inline void QPainter::eraseRect( int x, int y, int w, int h )
699{
700 fillRect( x, y, w, h, backgroundColor() );
701}
702
703inline void QPainter::eraseRect( const QRect &r )
704{
705 fillRect( r.x(), r.y(), r.width(), r.height(), backgroundColor() );
706}
707
708inline void QPainter::drawText( const QPoint &p, const QString &s, int len, TextDirection dir )
709{
710 drawText( p.x(), p.y(), s, 0, len, dir );
711}
712
713inline void QPainter::drawText( const QPoint &p, const QString &s, int pos, int len, TextDirection dir )
714{
715 drawText( p.x(), p.y(), s, pos, len, dir );
716}
717
718inline void QPainter::drawText( int x, int y, int w, int h, int tf,
719 const QString& str, int len, QRect *br, QTextParag **i )
720{
721 QRect r(x, y, w, h);
722 drawText( r, tf, str, len, br, i );
723}
724
725inline void QPainter::drawTextItem( const QPoint& p, const QTextItem &ti, int textflags )
726{
727 drawTextItem( p.x(), p.y(), ti, textflags );
728}
729
730inline QRect QPainter::boundingRect( int x, int y, int w, int h, int tf,
731 const QString& str, int len, QTextParag **i )
732{
733 QRect r(x, y, w, h);
734 return boundingRect( r, tf, str, len, i );
735}
736
737#if defined(Q_WS_QWS)
738inline QGfx * QPainter::internalGfx()
739{
740 return gfx;
741}
742#endif
743
744#endif // QPAINTER_H
Note: See TracBrowser for help on using the repository browser.