source: trunk/include/qpointarray.h@ 137

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

Imported xplatform parts of the official release 3.3.1 from Trolltech

  • Property svn:keywords set to Id
File size: 4.0 KB
Line 
1/****************************************************************************
2** $Id: qpointarray.h 2 2005-11-16 15:49:26Z dmik $
3**
4** Definition of QPointArray class
5**
6** Created : 940213
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 QPOINTARRAY_H
39#define QPOINTARRAY_H
40
41#ifndef QT_H
42#include "qmemarray.h"
43#include "qpoint.h"
44#endif // QT_H
45
46
47#if defined(Q_TEMPLATEDLL)
48//Q_TEMPLATE_EXTERN template class Q_EXPORT QMemArray<QPoint>;
49#endif
50
51class Q_EXPORT QPointArray : public QMemArray<QPoint>
52{
53public:
54 QPointArray() {}
55 ~QPointArray() {}
56 QPointArray( int size ) : QMemArray<QPoint>( size ) {}
57 QPointArray( const QPointArray &a ) : QMemArray<QPoint>( a ) {}
58 QPointArray( const QRect &r, bool closed=FALSE );
59 QPointArray( int nPoints, const QCOORD *points );
60
61 QPointArray &operator=( const QPointArray &a )
62 { return (QPointArray&)assign( a ); }
63
64 QPointArray copy() const
65 { QPointArray tmp; return *((QPointArray*)&tmp.duplicate(*this)); }
66
67 void translate( int dx, int dy );
68 QRect boundingRect() const;
69
70 void point( uint i, int *x, int *y ) const;
71 QPoint point( uint i ) const;
72 void setPoint( uint i, int x, int y );
73 void setPoint( uint i, const QPoint &p );
74 bool setPoints( int nPoints, const QCOORD *points );
75 bool setPoints( int nPoints, int firstx, int firsty, ... );
76 bool putPoints( int index, int nPoints, const QCOORD *points );
77 bool putPoints( int index, int nPoints, int firstx, int firsty, ... );
78 bool putPoints( int index, int nPoints,
79 const QPointArray & from, int fromIndex=0 );
80
81 void makeArc( int x, int y, int w, int h, int a1, int a2 );
82 void makeEllipse( int x, int y, int w, int h );
83 void makeArc( int x, int y, int w, int h, int a1, int a2,
84 const QWMatrix& );
85#ifndef QT_NO_BEZIER
86 QPointArray cubicBezier() const;
87#endif
88 void* shortPoints( int index = 0, int nPoints = -1 ) const;
89 static void cleanBuffers();
90
91protected:
92 static uint splen;
93 static void* sp;
94};
95
96
97/*****************************************************************************
98 QPointArray stream functions
99 *****************************************************************************/
100#ifndef QT_NO_DATASTREAM
101Q_EXPORT QDataStream &operator<<( QDataStream &, const QPointArray & );
102Q_EXPORT QDataStream &operator>>( QDataStream &, QPointArray & );
103#endif
104
105/*****************************************************************************
106 Misc. QPointArray functions
107 *****************************************************************************/
108
109inline void QPointArray::setPoint( uint i, const QPoint &p )
110{
111 setPoint( i, p.x(), p.y() );
112}
113
114
115#endif // QPOINTARRAY_H
Note: See TracBrowser for help on using the repository browser.