summaryrefslogtreecommitdiffstats
path: root/tqtinterface/qt4/src/kernel/tqregion.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tqtinterface/qt4/src/kernel/tqregion.cpp')
-rw-r--r--tqtinterface/qt4/src/kernel/tqregion.cpp398
1 files changed, 0 insertions, 398 deletions
diff --git a/tqtinterface/qt4/src/kernel/tqregion.cpp b/tqtinterface/qt4/src/kernel/tqregion.cpp
deleted file mode 100644
index 20d42c3..0000000
--- a/tqtinterface/qt4/src/kernel/tqregion.cpp
+++ /dev/null
@@ -1,398 +0,0 @@
-/****************************************************************************
-**
-** Implementation of TQRegion class
-**
-** Created : 950726
-**
-** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA.
-**
-** This file is part of the kernel module of the TQt GUI Toolkit.
-**
-** This file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free
-** Software Foundation and appearing in the files LICENSE.GPL2
-** and LICENSE.GPL3 included in the packaging of this file.
-** Alternatively you may (at your option) use any later version
-** of the GNU General Public License if such license has been
-** publicly approved by Trolltech ASA (or its successors, if any)
-** and the KDE Free TQt Foundation.
-**
-** Please review the following information to ensure GNU General
-** Public Licensing requirements will be met:
-** http://trolltech.com/products/qt/licenses/licensing/opensource/.
-** If you are unsure which license is appropriate for your use, please
-** review the following information:
-** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
-** or contact the sales department at sales@trolltech.com.
-**
-** This file may be used under the terms of the Q Public License as
-** defined by Trolltech ASA and appearing in the file LICENSE.TQPL
-** included in the packaging of this file. Licensees holding valid TQt
-** Commercial licenses may use this file in accordance with the TQt
-** Commercial License Agreement provided with the Software.
-**
-** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
-** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
-** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted
-** herein.
-**
-**********************************************************************/
-
-#include "tqregion.h"
-#include "tqpointarray.h"
-#include "tqbuffer.h"
-#include "tqdatastream.h"
-
-#ifdef USE_QT4
-
-/*!
- Use the constructor tha takes a Qt::FillRule as the second
- argument instead.
-*/
-TQRegion::TQRegion(const QPolygon &pa, bool winding)
-{
- new (this) QRegion(pa, winding ? Qt::WindingFill : Qt::OddEvenFill);
-}
-
-#else // USE_QT4
-
-// BEING REVISED: paul
-/*!
- \class TQRegion tqregion.h
- \brief The TQRegion class specifies a clip region for a painter.
-
- \ingroup images
- \ingroup graphics
-
- TQRegion is used with TQPainter::setClipRegion() to limit the paint
- area to what needs to be painted. There is also a
- TQWidget::tqrepaint() that takes a TQRegion parameter. TQRegion is the
- best tool for reducing flicker.
-
- A region can be created from a rectangle, an ellipse, a polygon or
- a bitmap. Complex regions may be created by combining simple
- regions using unite(), intersect(), subtract() or eor() (exclusive
- or). You can move a region using translate().
-
- You can test whether a region isNull(), isEmpty() or if it
- contains() a TQPoint or TQRect. The bounding rectangle is given by
- boundingRect().
-
- The function rects() gives a decomposition of the region into
- rectangles.
-
- Example of using complex regions:
- \code
- void MyWidget::paintEvent( TQPaintEvent * )
- {
- TQPainter p; // our painter
- TQRegion r1( TQRect(100,100,200,80), // r1 = elliptic region
- TQRegion::Ellipse );
- TQRegion r2( TQRect(100,120,90,30) ); // r2 = rectangular region
- TQRegion r3 = r1.intersect( r2 ); // r3 = intersection
- p.begin( this ); // start painting widget
- p.setClipRegion( r3 ); // set clip region
- ... // paint clipped graphics
- p.end(); // painting done
- }
- \endcode
-
- TQRegion is an \link shclass.html implicitly shared\endlink class.
-
- \warning Due to window system limitations, the whole coordinate
- space for a region is limited to the points between -32767 and
- 32767 on Mac OS X and Windows 95/98/ME.
-
- \sa TQPainter::setClipRegion(), TQPainter::setClipRect()
-*/
-
-
-/*!
- \enum TQRegion::RegionType
-
- Specifies the tqshape of the region to be created.
-
- \value Rectangle the region covers the entire rectangle.
- \value Ellipse the region is an ellipse inside the rectangle.
-*/
-
-/*!
- \fn Region TQRegion::handle() const
-
- Returns the region's handle.
-*/
-
-/*****************************************************************************
- TQRegion member functions
- *****************************************************************************/
-
-/*!
- Constructs a rectangular or elliptic region.
-
- If \a t is \c Rectangle, the region is the filled rectangle (\a x,
- \a y, \a w, \a h). If \a t is \c Ellipse, the region is the filled
- ellipse with center at (\a x + \a w / 2, \a y + \a h / 2) and size
- (\a w ,\a h ).
-*/
-TQRegion::TQRegion( int x, int y, int w, int h, RegionType t )
-{
- TQRegion tmp(TQRect(x,y,w,h),t);
- tmp.data->ref();
- data = tmp.data;
-}
-
-/*!
- Detaches from shared region data to make sure that this region is
- the only one referring to the data.
-
- \sa copy(), \link shclass.html shared classes\endlink
-*/
-
-void TQRegion::detach()
-{
- if ( data->count != 1 )
- *this = copy();
-}
-
-#ifndef TQT_NO_DATASTREAM
-/*
- Executes region commands in the internal buffer and rebuilds the
- original region.
-
- We do this when we read a region from the data stream.
-
- If \a ver is non-0, uses the format version \a ver on reading the
- byte array.
-*/
-
-void TQRegion::exec( const TQByteArray &buffer, int ver )
-{
- TQBuffer buf( buffer );
- TQDataStream s( &buf );
- if ( ver )
- s.setVersion( ver );
- buf.open( IO_ReadOnly );
- TQRegion rgn;
-#if defined(TQT_CHECK_STATE)
- int test_cnt = 0;
-#endif
- while ( !s.eof() ) {
- TQ_INT32 id;
- if ( s.version() == 1 ) {
- int id_int;
- s >> id_int;
- id = id_int;
- } else {
- s >> id;
- }
-#if defined(TQT_CHECK_STATE)
- if ( test_cnt > 0 && id != TQRGN_TRANSLATE )
- qWarning( "TQRegion::exec: Internal error" );
- test_cnt++;
-#endif
- if ( id == TQRGN_SETRECT || id == TQRGN_SETELLIPSE ) {
- TQRect r;
- s >> r;
- rgn = TQRegion( r, id == TQRGN_SETRECT ? Rectangle : Ellipse );
- } else if ( id == TQRGN_SETPTARRAY_ALT || id == TQRGN_SETPTARRAY_WIND ) {
- TQPointArray a;
- s >> a;
- rgn = TQRegion( a, id == TQRGN_SETPTARRAY_WIND );
- } else if ( id == TQRGN_TRANSLATE ) {
- TQPoint p;
- s >> p;
- rgn.translate( p.x(), p.y() );
- } else if ( id >= TQRGN_OR && id <= TQRGN_XOR ) {
- TQByteArray bop1, bop2;
- TQRegion r1, r2;
- s >> bop1; r1.exec( bop1 );
- s >> bop2; r2.exec( bop2 );
- switch ( id ) {
- case TQRGN_OR:
- rgn = r1.unite( r2 );
- break;
- case TQRGN_AND:
- rgn = r1.intersect( r2 );
- break;
- case TQRGN_SUB:
- rgn = r1.subtract( r2 );
- break;
- case TQRGN_XOR:
- rgn = r1.eor( r2 );
- break;
- }
- } else if ( id == TQRGN_RECTS ) {
- // (This is the only form used in TQt 2.0)
- TQ_UINT32 n;
- s >> n;
- TQRect r;
- for ( int i=0; i<(int)n; i++ ) {
- s >> r;
- rgn = rgn.unite( TQRegion(r) );
- }
- }
- }
- buf.close();
- *this = rgn;
-}
-
-
-/*****************************************************************************
- TQRegion stream functions
- *****************************************************************************/
-
-/*!
- \relates TQRegion
-
- Writes the region \a r to the stream \a s and returns a reference
- to the stream.
-
- \sa \link datastreamformat.html Format of the TQDataStream operators \endlink
-*/
-
-TQDataStream &operator<<( TQDataStream &s, const TQRegion &r )
-{
- TQMemArray<TQRect> a = r.rects();
- if ( a.isEmpty() ) {
- s << (TQ_UINT32)0;
- } else {
- if ( s.version() == 1 ) {
- int i;
- for ( i=(int)a.size()-1; i>0; i-- ) {
- s << (TQ_UINT32)(12+i*24);
- s << (int)TQRGN_OR;
- }
- for ( i=0; i<(int)a.size(); i++ ) {
- s << (TQ_UINT32)(4+8) << (int)TQRGN_SETRECT << a[i];
- }
- }
- else {
- s << (TQ_UINT32)(4+4+16*a.size()); // 16: storage size of TQRect
- s << (TQ_INT32)TQRGN_RECTS;
- s << (TQ_UINT32)a.size();
- for ( int i=0; i<(int)a.size(); i++ )
- s << a[i];
- }
- }
- return s;
-}
-
-/*!
- \relates TQRegion
-
- Reads a region from the stream \a s into \a r and returns a
- reference to the stream.
-
- \sa \link datastreamformat.html Format of the TQDataStream operators \endlink
-*/
-
-TQDataStream &operator>>( TQDataStream &s, TQRegion &r )
-{
- TQByteArray b;
- s >> b;
- r.exec( b, s.version() );
- return s;
-}
-#endif //TQT_NO_DATASTREAM
-
-// These are not inline - they can be implemented better on some platforms
-// (eg. Windows at least provides 3-variable operations). For now, simple.
-
-
-/*!
- Applies the unite() function to this region and \a r. \c r1|r2 is
- equivalent to \c r1.unite(r2)
-
- \sa unite(), operator+()
-*/
-const TQRegion TQRegion::operator|( const TQRegion &r ) const
- { return unite(r); }
-
-/*!
- Applies the unite() function to this region and \a r. \c r1+r2 is
- equivalent to \c r1.unite(r2)
-
- \sa unite(), operator|()
-*/
-const TQRegion TQRegion::operator+( const TQRegion &r ) const
- { return unite(r); }
-
-/*!
- Applies the intersect() function to this region and \a r. \c r1&r2
- is equivalent to \c r1.intersect(r2)
-
- \sa intersect()
-*/
-const TQRegion TQRegion::operator&( const TQRegion &r ) const
- { return intersect(r); }
-
-/*!
- Applies the subtract() function to this region and \a r. \c r1-r2
- is equivalent to \c r1.subtract(r2)
-
- \sa subtract()
-*/
-const TQRegion TQRegion::operator-( const TQRegion &r ) const
- { return subtract(r); }
-
-/*!
- Applies the eor() function to this region and \a r. \c r1^r2 is
- equivalent to \c r1.eor(r2)
-
- \sa eor()
-*/
-const TQRegion TQRegion::operator^( const TQRegion &r ) const
- { return eor(r); }
-
-/*!
- Applies the unite() function to this region and \a r and assigns
- the result to this region. \c r1|=r2 is equivalent to \c
- r1=r1.unite(r2)
-
- \sa unite()
-*/
-TQRegion& TQRegion::operator|=( const TQRegion &r )
- { return *this = *this | r; }
-
-/*!
- Applies the unite() function to this region and \a r and assigns
- the result to this region. \c r1+=r2 is equivalent to \c
- r1=r1.unite(r2)
-
- \sa intersect()
-*/
-TQRegion& TQRegion::operator+=( const TQRegion &r )
- { return *this = *this + r; }
-
-/*!
- Applies the intersect() function to this region and \a r and
- assigns the result to this region. \c r1&=r2 is equivalent to \c
- r1=r1.intersect(r2)
-
- \sa intersect()
-*/
-TQRegion& TQRegion::operator&=( const TQRegion &r )
- { return *this = *this & r; }
-
-/*!
- Applies the subtract() function to this region and \a r and
- assigns the result to this region. \c r1-=r2 is equivalent to \c
- r1=r1.subtract(r2)
-
- \sa subtract()
-*/
-TQRegion& TQRegion::operator-=( const TQRegion &r )
- { return *this = *this - r; }
-
-/*!
- Applies the eor() function to this region and \a r and
- assigns the result to this region. \c r1^=r2 is equivalent to \c
- r1=r1.eor(r2)
-
- \sa eor()
-*/
-TQRegion& TQRegion::operator^=( const TQRegion &r )
- { return *this = *this ^ r; }
-
-
-#endif // USE_QT4 \ No newline at end of file