source: trunk/doc/html/qcanvas-h.html

Last change on this file was 190, checked in by rudi, 14 years ago

reference documentation added

File size: 23.0 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<!-- /home/espenr/tmp/qt-3.3.8-espenr-2499/qt-x11-free-3.3.8/include/qcanvas.h:1 -->
3<html>
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
6<title>qcanvas.h Include File</title>
7<style type="text/css"><!--
8fn { margin-left: 1cm; text-indent: -1cm; }
9a:link { color: #004faf; text-decoration: none }
10a:visited { color: #672967; text-decoration: none }
11body { background: #ffffff; color: black; }
12--></style>
13</head>
14<body>
15
16<table border="0" cellpadding="0" cellspacing="0" width="100%">
17<tr bgcolor="#E5E5E5">
18<td valign=center>
19 <a href="index.html">
20<font color="#004faf">Home</font></a>
21 | <a href="classes.html">
22<font color="#004faf">All&nbsp;Classes</font></a>
23 | <a href="mainclasses.html">
24<font color="#004faf">Main&nbsp;Classes</font></a>
25 | <a href="annotated.html">
26<font color="#004faf">Annotated</font></a>
27 | <a href="groups.html">
28<font color="#004faf">Grouped&nbsp;Classes</font></a>
29 | <a href="functions.html">
30<font color="#004faf">Functions</font></a>
31</td>
32<td align="right" valign="center"><img src="logo32.png" align="right" width="64" height="32" border="0"></td></tr></table><h1 align=center>qcanvas.h</h1>
33
34<p>This is the verbatim text of the qcanvas.h include file. It is provided only for illustration; the copyright remains with Trolltech.
35<hr>
36<pre>
37/**********************************************************************
38** $Id: qcanvas-h.html 2051 2007-02-21 10:04:20Z chehrlic $
39**
40** Definition of QCanvas classes
41**
42** Created : 991211
43**
44** Copyright (C) 1999-2007 Trolltech ASA. All rights reserved.
45**
46** This file is part of the canvas module of the Qt GUI Toolkit.
47**
48** This file may be distributed under the terms of the Q Public License
49** as defined by Trolltech ASA of Norway and appearing in the file
50** LICENSE.QPL included in the packaging of this file.
51**
52** This file may be distributed and/or modified under the terms of the
53** GNU General Public License version 2 as published by the Free Software
54** Foundation and appearing in the file LICENSE.GPL included in the
55** packaging of this file.
56**
57** Licensees holding valid Qt Enterprise Edition licenses may use this
58** file in accordance with the Qt Commercial License Agreement provided
59** with the Software.
60**
61** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
62** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
63**
64** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
65** information about Qt Commercial License Agreements.
66** See http://www.trolltech.com/qpl/ for QPL licensing information.
67** See http://www.trolltech.com/gpl/ for GPL licensing information.
68**
69** Contact info@trolltech.com if any conditions of this licensing are
70** not clear to you.
71**
72**********************************************************************/
73
74#ifndef QCANVAS_H
75#define QCANVAS_H
76
77#ifndef QT_H
78#include "qscrollview.h"
79#include "qpixmap.h"
80#include "qptrlist.h"
81#include "qbrush.h"
82#include "qpen.h"
83#include "qvaluelist.h"
84#include "qpointarray.h"
85#endif // QT_H
86
87#if !defined( QT_MODULE_CANVAS ) || defined( QT_LICENSE_PROFESSIONAL ) || defined( QT_INTERNAL_CANVAS )
88#define QM_EXPORT_CANVAS
89#define QM_TEMPLATE_EXTERN_CANVAS
90#else
91#define QM_EXPORT_CANVAS Q_EXPORT
92#define QM_TEMPLATE_EXTERN_CANVAS Q_TEMPLATE_EXTERN
93#endif
94
95#ifndef QT_NO_CANVAS
96
97
98class QCanvasSprite;
99class QCanvasPolygonalItem;
100class QCanvasRectangle;
101class QCanvasPolygon;
102class QCanvasEllipse;
103class QCanvasText;
104class QCanvasLine;
105class QCanvasChunk;
106class QCanvas;
107class QCanvasItem;
108class QCanvasView;
109class QCanvasPixmap;
110
111#if defined(Q_TEMPLATEDLL) &amp;&amp; ( !defined(Q_CC_BOR) || !defined(QT_MAKEDLL) || defined(Q_EXPORT_TEMPLATES) )
112// MOC_SKIP_BEGIN
113QM_TEMPLATE_EXTERN_CANVAS template class QM_EXPORT_CANVAS QValueListIterator&lt; QCanvasItem* &gt;;
114QM_TEMPLATE_EXTERN_CANVAS template class QM_EXPORT_CANVAS QValueList&lt; QCanvasItem* &gt;;
115// MOC_SKIP_END
116#endif
117
118class QM_EXPORT_CANVAS QCanvasItemList : public QValueList&lt;QCanvasItem*&gt; {
119public:
120 void sort();
121 void drawUnique( QPainter&amp; painter );
122 QCanvasItemList operator+(const QCanvasItemList &amp;l) const;
123};
124
125
126class QCanvasItemExtra;
127
128class QM_EXPORT_CANVAS QCanvasItem : public Qt
129{
130public:
131 QCanvasItem(QCanvas* canvas);
132 virtual ~QCanvasItem();
133
134 double x() const
135 { return myx; }
136 double y() const
137 { return myy; }
138 double z() const
139 { return myz; } // (depth)
140
141 virtual void moveBy(double dx, double dy);
142 void move(double x, double y);
143 void setX(double a) { move(a,y()); }
144 void setY(double a) { move(x(),a); }
145 void setZ(double a) { myz=a; changeChunks(); }
146
147 bool animated() const;
148 virtual void setAnimated(bool y);
149 virtual void setVelocity( double vx, double vy);
150 void setXVelocity( double vx ) { setVelocity(vx,yVelocity()); }
151 void setYVelocity( double vy ) { setVelocity(xVelocity(),vy); }
152 double xVelocity() const;
153 double yVelocity() const;
154 virtual void advance(int stage);
155
156 virtual bool collidesWith( const QCanvasItem* ) const=0;
157
158 QCanvasItemList collisions(bool exact /* NO DEFAULT */ ) const;
159
160 virtual void setCanvas(QCanvas*);
161
162 virtual void draw(QPainter&amp;)=0;
163
164 void show();
165 void hide();
166
167 virtual void setVisible(bool yes);
168 bool isVisible() const
169 { return (bool)vis; }
170 virtual void setSelected(bool yes);
171 bool isSelected() const
172 { return (bool)sel; }
173 virtual void setEnabled(bool yes);
174 bool isEnabled() const
175 { return (bool)ena; }
176 virtual void setActive(bool yes);
177 bool isActive() const
178 { return (bool)act; }
179#ifndef QT_NO_COMPAT
180 bool visible() const
181 { return (bool)vis; }
182 bool selected() const
183 { return (bool)sel; }
184 bool enabled() const
185 { return (bool)ena; }
186 bool active() const
187 { return (bool)act; }
188#endif
189
190 enum RttiValues {
191 Rtti_Item = 0,
192 Rtti_Sprite = 1,
193 Rtti_PolygonalItem = 2,
194 Rtti_Text = 3,
195 Rtti_Polygon = 4,
196 Rtti_Rectangle = 5,
197 Rtti_Ellipse = 6,
198 Rtti_Line = 7,
199 Rtti_Spline = 8
200 };
201
202 virtual int rtti() const;
203 static int RTTI;
204
205 virtual QRect boundingRect() const=0;
206 virtual QRect boundingRectAdvanced() const;
207
208 QCanvas* canvas() const
209 { return cnv; }
210
211protected:
212 void update() { changeChunks(); }
213
214private:
215 // For friendly subclasses...
216
217 friend class QCanvasPolygonalItem;
218 friend class QCanvasSprite;
219 friend class QCanvasRectangle;
220 friend class QCanvasPolygon;
221 friend class QCanvasEllipse;
222 friend class QCanvasText;
223 friend class QCanvasLine;
224
225 virtual QPointArray chunks() const;
226 virtual void addToChunks();
227 virtual void removeFromChunks();
228 virtual void changeChunks();
229 virtual bool collidesWith( const QCanvasSprite*,
230 const QCanvasPolygonalItem*,
231 const QCanvasRectangle*,
232 const QCanvasEllipse*,
233 const QCanvasText* ) const = 0;
234 // End of friend stuff
235
236 QCanvas* cnv;
237 static QCanvas* current_canvas;
238 double myx,myy,myz;
239 QCanvasItemExtra *ext;
240 QCanvasItemExtra&amp; extra();
241 uint ani:1;
242 uint vis:1;
243 uint val:1;
244 uint sel:1;
245 uint ena:1;
246 uint act:1;
247};
248
249
250class QCanvasData;
251
252class QM_EXPORT_CANVAS QCanvas : public QObject
253{
254 Q_OBJECT
255public:
256 QCanvas( QObject* parent = 0, const char* name = 0 );
257 QCanvas(int w, int h);
258 QCanvas( QPixmap p, int h, int v, int tilewidth, int tileheight );
259
260 virtual ~QCanvas();
261
262 virtual void setTiles( QPixmap tiles, int h, int v,
263 int tilewidth, int tileheight );
264 virtual void setBackgroundPixmap( const QPixmap&amp; p );
265 QPixmap backgroundPixmap() const;
266
267 virtual void setBackgroundColor( const QColor&amp; c );
268 QColor backgroundColor() const;
269
270 virtual void setTile( int x, int y, int tilenum );
271 int tile( int x, int y ) const
272 { return grid[x+y*htiles]; }
273
274 int tilesHorizontally() const
275 { return htiles; }
276 int tilesVertically() const
277 { return vtiles; }
278
279 int tileWidth() const
280 { return tilew; }
281 int tileHeight() const
282 { return tileh; }
283
284 virtual void resize(int width, int height);
285 int width() const
286 { return awidth; }
287 int height() const
288 { return aheight; }
289 QSize size() const
290 { return QSize(awidth,aheight); }
291 QRect rect() const
292 { return QRect( 0, 0, awidth, aheight ); }
293 bool onCanvas( int x, int y ) const
294 { return x&gt;=0 &amp;&amp; y&gt;=0 &amp;&amp; x&lt;awidth &amp;&amp; y&lt;aheight; }
295 bool onCanvas( const QPoint&amp; p ) const
296 { return onCanvas(p.x(),p.y()); }
297 bool validChunk( int x, int y ) const
298 { return x&gt;=0 &amp;&amp; y&gt;=0 &amp;&amp; x&lt;chwidth &amp;&amp; y&lt;chheight; }
299 bool validChunk( const QPoint&amp; p ) const
300 { return validChunk(p.x(),p.y()); }
301
302 int chunkSize() const
303 { return chunksize; }
304 virtual void retune(int chunksize, int maxclusters=100);
305
306 bool sameChunk(int x1, int y1, int x2, int y2) const
307 { return x1/chunksize==x2/chunksize &amp;&amp; y1/chunksize==y2/chunksize; }
308 virtual void setChangedChunk(int i, int j);
309 virtual void setChangedChunkContaining(int x, int y);
310 virtual void setAllChanged();
311 virtual void setChanged(const QRect&amp; area);
312 virtual void setUnchanged(const QRect&amp; area);
313
314 // These call setChangedChunk.
315 void addItemToChunk(QCanvasItem*, int i, int j);
316 void removeItemFromChunk(QCanvasItem*, int i, int j);
317 void addItemToChunkContaining(QCanvasItem*, int x, int y);
318 void removeItemFromChunkContaining(QCanvasItem*, int x, int y);
319
320 QCanvasItemList allItems();
321 QCanvasItemList collisions( const QPoint&amp;) const;
322 QCanvasItemList collisions( const QRect&amp;) const;
323 QCanvasItemList collisions( const QPointArray&amp; pa, const QCanvasItem* item,
324 bool exact) const;
325
326 void drawArea(const QRect&amp;, QPainter* p, bool double_buffer=FALSE);
327
328 // These are for QCanvasView to call
329 virtual void addView(QCanvasView*);
330 virtual void removeView(QCanvasView*);
331 void drawCanvasArea(const QRect&amp;, QPainter* p=0, bool double_buffer=TRUE);
332 void drawViewArea( QCanvasView* view, QPainter* p, const QRect&amp; r, bool dbuf );
333
334 // These are for QCanvasItem to call
335 virtual void addItem(QCanvasItem*);
336 virtual void addAnimation(QCanvasItem*);
337 virtual void removeItem(QCanvasItem*);
338 virtual void removeAnimation(QCanvasItem*);
339
340 virtual void setAdvancePeriod(int ms);
341 virtual void setUpdatePeriod(int ms);
342
343 virtual void setDoubleBuffering(bool y);
344
345signals:
346 void resized();
347
348public slots:
349 virtual void advance();
350 virtual void update();
351
352protected:
353 virtual void drawBackground(QPainter&amp;, const QRect&amp; area);
354 virtual void drawForeground(QPainter&amp;, const QRect&amp; area);
355
356private:
357 void init(int w, int h, int chunksze=16, int maxclust=100);
358
359 QCanvasChunk&amp; chunk(int i, int j) const;
360 QCanvasChunk&amp; chunkContaining(int x, int y) const;
361
362 QRect changeBounds(const QRect&amp; inarea);
363 void drawChanges(const QRect&amp; inarea);
364
365 QPixmap offscr;
366 int awidth,aheight;
367 int chunksize;
368 int maxclusters;
369 int chwidth,chheight;
370 QCanvasChunk* chunks;
371
372 QCanvasData* d;
373
374 void initTiles(QPixmap p, int h, int v, int tilewidth, int tileheight);
375 ushort *grid;
376 ushort htiles;
377 ushort vtiles;
378 ushort tilew;
379 ushort tileh;
380 bool oneone;
381 QPixmap pm;
382 QTimer* update_timer;
383 QColor bgcolor;
384 bool debug_redraw_areas;
385 bool dblbuf;
386
387 friend void qt_unview(QCanvas* c);
388
389#if defined(Q_DISABLE_COPY) // Disabled copy constructor and operator=
390 QCanvas( const QCanvas &amp; );
391 QCanvas &amp;operator=( const QCanvas &amp; );
392#endif
393};
394
395class QCanvasViewData;
396
397class QM_EXPORT_CANVAS QCanvasView : public QScrollView
398{
399 Q_OBJECT
400public:
401
402 QCanvasView(QWidget* parent=0, const char* name=0, WFlags f=0);
403 QCanvasView(QCanvas* viewing, QWidget* parent=0, const char* name=0, WFlags f=0);
404 ~QCanvasView();
405
406 QCanvas* canvas() const
407 { return viewing; }
408 void setCanvas(QCanvas* v);
409
410 const QWMatrix &amp;worldMatrix() const;
411 const QWMatrix &amp;inverseWorldMatrix() const;
412 bool setWorldMatrix( const QWMatrix &amp; );
413
414protected:
415 void drawContents( QPainter*, int cx, int cy, int cw, int ch );
416 QSize sizeHint() const;
417
418private:
419 void drawContents( QPainter* );
420 QCanvas* viewing;
421 QCanvasViewData* d;
422 friend void qt_unview(QCanvas* c);
423
424private slots:
425 void cMoving(int,int);
426 void updateContentsSize();
427
428private:
429#if defined(Q_DISABLE_COPY) // Disabled copy constructor and operator=
430 QCanvasView( const QCanvasView &amp; );
431 QCanvasView &amp;operator=( const QCanvasView &amp; );
432#endif
433};
434
435
436class QM_EXPORT_CANVAS QCanvasPixmap : public QPixmap
437{
438public:
439#ifndef QT_NO_IMAGEIO
440 QCanvasPixmap(const QString&amp; datafilename);
441#endif
442 QCanvasPixmap(const QImage&amp; image);
443 QCanvasPixmap(const QPixmap&amp;, const QPoint&amp; hotspot);
444 ~QCanvasPixmap();
445
446 int offsetX() const
447 { return hotx; }
448 int offsetY() const
449 { return hoty; }
450 void setOffset(int x, int y) { hotx = x; hoty = y; }
451
452private:
453#if defined(Q_DISABLE_COPY)
454 QCanvasPixmap( const QCanvasPixmap &amp; );
455 QCanvasPixmap &amp;operator=( const QCanvasPixmap &amp; );
456#endif
457 void init(const QImage&amp;);
458 void init(const QPixmap&amp; pixmap, int hx, int hy);
459
460 friend class QCanvasSprite;
461 friend class QCanvasPixmapArray;
462 friend bool qt_testCollision(const QCanvasSprite* s1, const QCanvasSprite* s2);
463
464 int hotx,hoty;
465
466 QImage* collision_mask;
467};
468
469
470class QM_EXPORT_CANVAS QCanvasPixmapArray
471{
472public:
473 QCanvasPixmapArray();
474#ifndef QT_NO_IMAGEIO
475 QCanvasPixmapArray(const QString&amp; datafilenamepattern, int framecount=0);
476#endif
477 // this form is deprecated
478 QCanvasPixmapArray(QPtrList&lt;QPixmap&gt;, QPtrList&lt;QPoint&gt; hotspots);
479
480 QCanvasPixmapArray(QValueList&lt;QPixmap&gt;, QPointArray hotspots = QPointArray() );
481 ~QCanvasPixmapArray();
482
483#ifndef QT_NO_IMAGEIO
484 bool readPixmaps(const QString&amp; datafilenamepattern, int framecount=0);
485 bool readCollisionMasks(const QString&amp; filenamepattern);
486#endif
487
488 // deprecated
489 bool operator!(); // Failure check.
490 bool isValid() const;
491
492 QCanvasPixmap* image(int i) const
493 { return img ? img[i] : 0; }
494 void setImage(int i, QCanvasPixmap* p);
495 uint count() const
496 { return (uint)framecount; }
497
498private:
499#if defined(Q_DISABLE_COPY)
500 QCanvasPixmapArray( const QCanvasPixmapArray &amp; );
501 QCanvasPixmapArray &amp;operator=( const QCanvasPixmapArray &amp; );
502#endif
503#ifndef QT_NO_IMAGEIO
504 bool readPixmaps(const QString&amp; datafilenamepattern, int framecount, bool maskonly);
505#endif
506
507 void reset();
508 int framecount;
509 QCanvasPixmap** img;
510};
511
512
513class QM_EXPORT_CANVAS QCanvasSprite : public QCanvasItem
514{
515public:
516 QCanvasSprite(QCanvasPixmapArray* array, QCanvas* canvas);
517
518 void setSequence(QCanvasPixmapArray* seq);
519
520 virtual ~QCanvasSprite();
521
522 void move(double x, double y);
523 virtual void move(double x, double y, int frame);
524 void setFrame(int);
525 enum FrameAnimationType { Cycle, Oscillate };
526 virtual void setFrameAnimation(FrameAnimationType=Cycle, int step=1, int state=0);
527 int frame() const
528 { return frm; }
529 int frameCount() const
530 { return images-&gt;count(); }
531
532 int rtti() const;
533 static int RTTI;
534
535 bool collidesWith( const QCanvasItem* ) const;
536
537 QRect boundingRect() const;
538
539 // is there a reason for these to be protected? Lars
540//protected:
541
542 int width() const;
543 int height() const;
544
545 int leftEdge() const;
546 int topEdge() const;
547 int rightEdge() const;
548 int bottomEdge() const;
549
550 int leftEdge(int nx) const;
551 int topEdge(int ny) const;
552 int rightEdge(int nx) const;
553 int bottomEdge(int ny) const;
554 QCanvasPixmap* image() const
555 { return images-&gt;image(frm); }
556 virtual QCanvasPixmap* imageAdvanced() const;
557 QCanvasPixmap* image(int f) const
558 { return images-&gt;image(f); }
559 virtual void advance(int stage);
560
561public:
562 void draw(QPainter&amp; painter);
563
564private:
565#if defined(Q_DISABLE_COPY)
566 QCanvasSprite( const QCanvasSprite &amp; );
567 QCanvasSprite &amp;operator=( const QCanvasSprite &amp; );
568#endif
569 void addToChunks();
570 void removeFromChunks();
571 void changeChunks();
572
573 int frm;
574 ushort anim_val;
575 uint anim_state:2;
576 uint anim_type:14;
577 bool collidesWith( const QCanvasSprite*,
578 const QCanvasPolygonalItem*,
579 const QCanvasRectangle*,
580 const QCanvasEllipse*,
581 const QCanvasText* ) const;
582
583 friend bool qt_testCollision( const QCanvasSprite* s1,
584 const QCanvasSprite* s2 );
585
586 QCanvasPixmapArray* images;
587};
588
589class QPolygonalProcessor;
590
591class QM_EXPORT_CANVAS QCanvasPolygonalItem : public QCanvasItem
592{
593public:
594 QCanvasPolygonalItem(QCanvas* canvas);
595 virtual ~QCanvasPolygonalItem();
596
597 bool collidesWith( const QCanvasItem* ) const;
598
599 virtual void setPen(QPen p);
600 virtual void setBrush(QBrush b);
601
602 QPen pen() const
603 { return pn; }
604 QBrush brush() const
605 { return br; }
606
607 virtual QPointArray areaPoints() const=0;
608 virtual QPointArray areaPointsAdvanced() const;
609 QRect boundingRect() const;
610
611 int rtti() const;
612 static int RTTI;
613
614protected:
615 void draw(QPainter &amp;);
616 virtual void drawShape(QPainter &amp;) = 0;
617
618 bool winding() const;
619 void setWinding(bool);
620
621 void invalidate();
622 bool isValid() const
623 { return (bool)val; }
624
625private:
626 void scanPolygon( const QPointArray&amp; pa, int winding,
627 QPolygonalProcessor&amp; process ) const;
628 QPointArray chunks() const;
629
630 bool collidesWith( const QCanvasSprite*,
631 const QCanvasPolygonalItem*,
632 const QCanvasRectangle*,
633 const QCanvasEllipse*,
634 const QCanvasText* ) const;
635
636 QBrush br;
637 QPen pn;
638 uint wind:1;
639};
640
641
642class QM_EXPORT_CANVAS QCanvasRectangle : public QCanvasPolygonalItem
643{
644public:
645 QCanvasRectangle(QCanvas* canvas);
646 QCanvasRectangle(const QRect&amp;, QCanvas* canvas);
647 QCanvasRectangle(int x, int y, int width, int height, QCanvas* canvas);
648
649 ~QCanvasRectangle();
650
651 int width() const;
652 int height() const;
653 void setSize(int w, int h);
654 QSize size() const
655 { return QSize(w,h); }
656 QPointArray areaPoints() const;
657 QRect rect() const
658 { return QRect(int(x()),int(y()),w,h); }
659
660 bool collidesWith( const QCanvasItem* ) const;
661
662 int rtti() const;
663 static int RTTI;
664
665protected:
666 void drawShape(QPainter &amp;);
667 QPointArray chunks() const;
668
669private:
670 bool collidesWith( const QCanvasSprite*,
671 const QCanvasPolygonalItem*,
672 const QCanvasRectangle*,
673 const QCanvasEllipse*,
674 const QCanvasText* ) const;
675
676 int w, h;
677};
678
679
680class QM_EXPORT_CANVAS QCanvasPolygon : public QCanvasPolygonalItem
681{
682public:
683 QCanvasPolygon(QCanvas* canvas);
684 ~QCanvasPolygon();
685 void setPoints(QPointArray);
686 QPointArray points() const;
687 void moveBy(double dx, double dy);
688
689 QPointArray areaPoints() const;
690
691 int rtti() const;
692 static int RTTI;
693
694protected:
695 void drawShape(QPainter &amp;);
696 QPointArray poly;
697};
698
699
700class QM_EXPORT_CANVAS QCanvasSpline : public QCanvasPolygon
701{
702public:
703 QCanvasSpline(QCanvas* canvas);
704 ~QCanvasSpline();
705
706 void setControlPoints(QPointArray, bool closed=TRUE);
707 QPointArray controlPoints() const;
708 bool closed() const;
709
710 int rtti() const;
711 static int RTTI;
712
713private:
714 void recalcPoly();
715 QPointArray bez;
716 bool cl;
717};
718
719
720class QM_EXPORT_CANVAS QCanvasLine : public QCanvasPolygonalItem
721{
722public:
723 QCanvasLine(QCanvas* canvas);
724 ~QCanvasLine();
725 void setPoints(int x1, int y1, int x2, int y2);
726
727 QPoint startPoint() const
728 { return QPoint(x1,y1); }
729 QPoint endPoint() const
730 { return QPoint(x2,y2); }
731
732 int rtti() const;
733 static int RTTI;
734
735 void setPen(QPen p);
736 void moveBy(double dx, double dy);
737
738protected:
739 void drawShape(QPainter &amp;);
740 QPointArray areaPoints() const;
741
742private:
743 int x1,y1,x2,y2;
744};
745
746
747class QM_EXPORT_CANVAS QCanvasEllipse : public QCanvasPolygonalItem
748{
749
750public:
751 QCanvasEllipse( QCanvas* canvas );
752 QCanvasEllipse( int width, int height, QCanvas* canvas );
753 QCanvasEllipse( int width, int height, int startangle, int angle,
754 QCanvas* canvas );
755
756 ~QCanvasEllipse();
757
758 int width() const;
759 int height() const;
760 void setSize(int w, int h);
761 void setAngles(int start, int length);
762 int angleStart() const
763 { return a1; }
764 int angleLength() const
765 { return a2; }
766 QPointArray areaPoints() const;
767
768 bool collidesWith( const QCanvasItem* ) const;
769
770 int rtti() const;
771 static int RTTI;
772
773protected:
774 void drawShape(QPainter &amp;);
775
776private:
777 bool collidesWith( const QCanvasSprite*,
778 const QCanvasPolygonalItem*,
779 const QCanvasRectangle*,
780 const QCanvasEllipse*,
781 const QCanvasText* ) const;
782 int w, h;
783 int a1, a2;
784};
785
786
787class QCanvasTextExtra;
788
789class QM_EXPORT_CANVAS QCanvasText : public QCanvasItem
790{
791public:
792 QCanvasText(QCanvas* canvas);
793 QCanvasText(const QString&amp;, QCanvas* canvas);
794 QCanvasText(const QString&amp;, QFont, QCanvas* canvas);
795
796 virtual ~QCanvasText();
797
798 void setText( const QString&amp; );
799 void setFont( const QFont&amp; );
800 void setColor( const QColor&amp; );
801 QString text() const;
802 QFont font() const;
803 QColor color() const;
804
805 void moveBy(double dx, double dy);
806
807 int textFlags() const
808 { return flags; }
809 void setTextFlags(int);
810
811 QRect boundingRect() const;
812
813 bool collidesWith( const QCanvasItem* ) const;
814
815 int rtti() const;
816 static int RTTI;
817
818protected:
819 virtual void draw(QPainter&amp;);
820
821private:
822#if defined(Q_DISABLE_COPY)
823 QCanvasText( const QCanvasText &amp; );
824 QCanvasText &amp;operator=( const QCanvasText &amp; );
825#endif
826 void addToChunks();
827 void removeFromChunks();
828 void changeChunks();
829
830 void setRect();
831 QRect brect;
832 QString txt;
833 int flags;
834 QFont fnt;
835 QColor col;
836 QCanvasTextExtra* extra;
837
838 bool collidesWith( const QCanvasSprite*,
839 const QCanvasPolygonalItem*,
840 const QCanvasRectangle*,
841 const QCanvasEllipse*,
842 const QCanvasText* ) const;
843};
844
845#define Q_DEFINED_QCANVAS
846#include "qwinexport.h"
847#endif // QT_NO_CANVAS
848
849#endif // QCANVAS_H
850</pre>
851<!-- eof -->
852<p><address><hr><div align=center>
853<table width=100% cellspacing=0 border=0><tr>
854<td>Copyright &copy; 2007
855<a href="troll.html">Trolltech</a><td align=center><a href="trademarks.html">Trademarks</a>
856<td align=right><div align=right>Qt 3.3.8</div>
857</table></div></address></body>
858</html>
Note: See TracBrowser for help on using the repository browser.