00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __koChild_h__
00020 #define __koChild_h__
00021
00022 #include <QObject>
00023 #include <QMatrix>
00024
00025 #include <QPolygon>
00026 #include <koffice_export.h>
00027
00043 class KOFFICECORE_EXPORT KoChild : public QObject
00044 {
00045 Q_OBJECT
00046 public:
00047
00057 enum Gadget { NoGadget, TopLeft, TopMid, TopRight, MidLeft, MidRight,
00058 BottomLeft, BottomMid, BottomRight, Move };
00059
00060 KoChild( QObject *parent = 0, const char *name = 0 );
00061 virtual ~KoChild();
00062
00067 void setGeometry( const QRect &rect, bool noEmit = false );
00068
00078 QRect geometry() const;
00079
00086 virtual QRegion region( const QMatrix& = QMatrix() ) const;
00087
00094 virtual QPolygon pointArray( const QMatrix &matrix = QMatrix() ) const;
00095
00100
00101
00107 QRect boundingRect() const;
00108
00113 virtual void setScaling( double x, double y );
00114
00118 virtual double xScaling() const;
00119
00123 virtual double yScaling() const;
00124
00128 virtual void setShearing( double x, double y );
00129
00133 virtual double xShearing() const;
00134
00138 virtual double yShearing() const;
00139
00143 virtual void setRotation( double );
00144
00148 virtual double rotation() const;
00149
00153 virtual void setRotationPoint( const QPoint& pos );
00154
00158 virtual QPoint rotationPoint() const;
00159
00164 bool isRectangle() const;
00165
00175 virtual void setClipRegion( QPainter& painter, bool combine = true );
00176
00182 virtual void transform( QPainter& painter );
00183
00189 virtual void setContentsPos( int x, int y );
00190
00198 virtual QRect contentRect() const;
00199
00205 virtual QRegion frameRegion( const QMatrix& matrix = QMatrix(), bool solid = false ) const;
00206
00211 virtual QPolygon framePointArray( const QMatrix &matrix = QMatrix() ) const;
00212
00219 virtual QMatrix matrix() const;
00220
00230 void lock();
00231
00235 void unlock();
00236
00248 bool locked() const;
00249
00253 virtual QPolygon oldPointArray( const QMatrix &matrix );
00254
00262 virtual void setTransparent( bool transparent );
00263
00269 virtual bool isTransparent() const;
00270
00280 virtual Gadget gadgetHitTest( const QPoint& p );
00281
00282 signals:
00283
00289 void changed( KoChild *thisChild );
00290
00291 protected:
00292
00300 virtual QPolygon pointArray( const QRect& r, const QMatrix& matrix = QMatrix() ) const;
00301
00307 virtual void updateMatrix();
00308 private:
00309
00310 class KoChildPrivate;
00311 KoChildPrivate *d;
00312 };
00313
00314 #endif