This is the verbatim text of the qrect.h include file. It is is provided only for illustration; the copyright remains with Troll Tech.
/**************************************************************************** ** $Id: qrect.h,v 1.10 1995/06/08 13:39:51 eiriken Exp $ ** ** Definition of QRect class ** ** Author : Haavard Nord ** Created : 931028 ** ** Copyright (C) 1993-1995 by Troll Tech AS. All rights reserved. ** *****************************************************************************/ #ifndef QRECT_H #define QRECT_H #include "qsize.h" class QRect // rectangle class { public: QRect() {} // undefined init values QRect( const QPoint &topleft, const QPoint &bottomright ); QRect( const QPoint &topleft, const QSize &size ); QRect( QCOORD left, QCOORD top, QCOORD width, QCOORD height ); bool isNull() const; // zero width and height bool isEmpty() const; // zero or neg. width or height bool isValid() const; // has valid coordinates void fixup(); // fixup bad coordinates QCOORD left() const { return x1; } // get left position QCOORD top() const { return y1; } // get top position QCOORD right() const { return x2; } // get right position QCOORD bottom() const { return y2; } // get bottom position QCOORD x() const { return x1; } // same as left() QCOORD y() const { return y1; } // same as top() void setLeft( QCOORD pos ); // set left position void setTop( QCOORD pos ); // set top position void setRight( QCOORD pos ); // set right position void setBottom( QCOORD pos ); // set bottom position void setX( QCOORD x ); // same as setLeft() void setY( QCOORD y ); // same as setTop() QPoint topLeft() const; // get top left point QPoint bottomRight() const; // get bottom right point QPoint topRight() const; // get top right point QPoint bottomLeft() const; // get bottom left point QPoint center() const; // get center point void rect( int *x, int *y, int *w, int *h ) const; void coords( int *x1, int *y1, int *x2, int *y2 ) const; void setTopLeft( const QPoint &p ); // move; top left at p void setBottomRight( const QPoint &p ); // move; bottom right at p void setTopRight( const QPoint &p ); // move; top right at p void setBottomLeft( const QPoint &p ); // move; bottom left at p void setCenter( const QPoint &p ); // move; center at p void move( int dx, int dy ); // move; displace by dx,dy void setRect( int x, int y, int w, int h ); void setCoords( int x1, int y1, int x2, int y2 ); QSize size() const; // get size QCOORD width() const; // get width QCOORD height() const; // get height void setWidth( QCOORD w ); // set width void setHeight( QCOORD h ); // set height void setSize( const QSize &s ); // set size bool contains( const QPoint &p, bool proper=FALSE ) const; bool contains( const QRect &r, bool proper=FALSE ) const; QRect unite( const QRect &r ) const; QRect intersect( const QRect &r ) const; bool intersects( const QRect &r ) const; friend bool operator==( const QRect &, const QRect & ); friend bool operator!=( const QRect &, const QRect & ); private: #if defined(_OS_MAC_) QCOORD y1; // top position QCOORD x1; // left position QCOORD y2; // bottom position QCOORD x2; // right position #else QCOORD x1; // left position QCOORD y1; // top position QCOORD x2; // right position QCOORD y2; // bottom position #endif }; // -------------------------------------------------------------------------- // QRect stream functions // QDataStream &operator<<( QDataStream &, const QRect & ); QDataStream &operator>>( QDataStream &, QRect & ); #if !(defined(QRECT_C) || defined(DEBUG)) // -------------------------------------------------------------------------- // QRect member functions // inline void QRect::setLeft( QCOORD pos ) { x1 = pos; } inline void QRect::setTop( QCOORD pos ) { y1 = pos; } inline void QRect::setX( QCOORD x ) { x1 = x; } inline void QRect::setY( QCOORD y ) { y1 = y; } inline void QRect::setRight( QCOORD pos ) { x2 = pos; } inline void QRect::setBottom( QCOORD pos ) { y2 = pos; } inline QPoint QRect::topLeft() const { return QPoint( x1, y1 ); } inline QPoint QRect::bottomRight() const { return QPoint( x2, y2 ); } inline QPoint QRect::topRight() const { return QPoint( x2, y1 ); } inline QPoint QRect::bottomLeft() const { return QPoint( x1, y2 ); } inline QPoint QRect::center() const { return QPoint( (x1+x2)/2, (y1+y2)/2 ); } inline bool QRect::isNull() const { return x2 == x1-1 && y2 == y1-1; } inline bool QRect::isEmpty() const { return x1 > x2 || y1 > y2; } inline bool QRect::isValid() const { return x1 <= x2 && y1 <= y2; } inline QSize QRect::size() const { return QSize( x2-x1+1, y2-y1+1 ); } inline QCOORD QRect::width() const { return x2-x1+1; } inline QCOORD QRect::height() const { return y2-y1+1; } inline void QRect::setSize( const QSize &s ) { x2 = x1+s.width()-1; y2 = y1+s.height()-1; } #endif // inline functions #endif // QRECT_H