diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-08 12:31:36 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2011-11-08 12:31:36 -0600 |
commit | d796c9dd933ab96ec83b9a634feedd5d32e1ba3f (patch) | |
tree | 6e3dcca4f77e20ec8966c666aac7c35bd4704053 /src/kernel/qvariant.h | |
download | tqt3-d796c9dd933ab96ec83b9a634feedd5d32e1ba3f.tar.gz tqt3-d796c9dd933ab96ec83b9a634feedd5d32e1ba3f.zip |
Test conversion to TQt3 from Qt3 8c6fc1f8e35fd264dd01c582ca5e7549b32ab731
Diffstat (limited to 'src/kernel/qvariant.h')
-rw-r--r-- | src/kernel/qvariant.h | 396 |
1 files changed, 396 insertions, 0 deletions
diff --git a/src/kernel/qvariant.h b/src/kernel/qvariant.h new file mode 100644 index 000000000..f9a370f0c --- /dev/null +++ b/src/kernel/qvariant.h @@ -0,0 +1,396 @@ +/**************************************************************************** +** +** Definition of TQVariant class +** +** Created : 990414 +** +** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. +** +** 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 retquirements 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. +** +**********************************************************************/ + +#ifndef TQVARIANT_H +#define TQVARIANT_H + +#ifndef QT_H +#include "qstring.h" +#endif // QT_H + +#ifndef QT_NO_VARIANT +class TQString; +class TQCString; +class TQFont; +class TQPixmap; +class TQBrush; +class TQRect; +class TQPoint; +class TQImage; +class TQSize; +class TQColor; +class TQPalette; +class TQColorGroup; +class TQIconSet; +class TQDataStream; +class TQPointArray; +class TQRegion; +class TQBitmap; +class TQCursor; +class TQStringList; +class TQSizePolicy; +class TQDate; +class TQTime; +class TQDateTime; +class TQBitArray; +class TQKeySequence; +class TQPen; +// Some headers rejected after TQVariant declaration for GCC 2.7.* compatibility +class TQVariant; +#ifndef QT_NO_TEMPLATE_VARIANT +template <class T> class TQValueList; +template <class T> class TQValueListConstIterator; +template <class T> class TQValueListNode; +template <class Key, class T> class TQMap; +template <class Key, class T> class TQMapConstIterator; +#endif + +class Q_EXPORT TQVariant +{ +public: + enum Type { + Invalid, + Map, + List, + String, + StringList, + Font, + Pixmap, + Brush, + Rect, + Size, + Color, + Palette, + ColorGroup, + IconSet, + Point, + Image, + Int, + UInt, + Bool, + Double, + CString, + PointArray, + Region, + Bitmap, + Cursor, + SizePolicy, + Date, + Time, + DateTime, + ByteArray, + BitArray, + KeySequence, + Pen, + LongLong, + ULongLong + }; + + TQVariant(); + ~TQVariant(); + TQVariant( const TQVariant& ); +#ifndef QT_NO_DATASTREAM + TQVariant( TQDataStream& s ); +#endif + TQVariant( const TQString& ); + TQVariant( const TQCString& ); + TQVariant( const char* ); +#ifndef QT_NO_STRINGLIST + TQVariant( const TQStringList& ); +#endif + TQVariant( const TQFont& ); + TQVariant( const TQPixmap& ); + TQVariant( const TQImage& ); + TQVariant( const TQBrush& ); + TQVariant( const TQPoint& ); + TQVariant( const TQRect& ); + TQVariant( const TQSize& ); + TQVariant( const TQColor& ); + TQVariant( const TQPalette& ); + TQVariant( const TQColorGroup& ); + TQVariant( const TQIconSet& ); + TQVariant( const TQPointArray& ); + TQVariant( const TQRegion& ); + TQVariant( const TQBitmap& ); + TQVariant( const TQCursor& ); + TQVariant( const TQDate& ); + TQVariant( const TQTime& ); + TQVariant( const TQDateTime& ); + TQVariant( const TQByteArray& ); + TQVariant( const TQBitArray& ); +#ifndef QT_NO_ACCEL + TQVariant( const TQKeySequence& ); +#endif + TQVariant( const TQPen& ); +#ifndef QT_NO_TEMPLATE_VARIANT + TQVariant( const TQValueList<TQVariant>& ); + TQVariant( const TQMap<TQString,TQVariant>& ); +#endif + TQVariant( int ); + TQVariant( uint ); + TQVariant( Q_LLONG ); + TQVariant( Q_ULLONG ); + // ### Problems on some compilers ? + TQVariant( bool, int ); + TQVariant( double ); + TQVariant( TQSizePolicy ); + + TQVariant& operator= ( const TQVariant& ); + bool operator==( const TQVariant& ) const; + bool operator!=( const TQVariant& ) const; + + Type type() const; + const char* typeName() const; + + bool canCast( Type ) const; + bool cast( Type ); + + bool isValid() const; + bool isNull() const; + + void clear(); + + const TQString toString() const; + const TQCString toCString() const; +#ifndef QT_NO_STRINGLIST + const TQStringList toStringList() const; +#endif + const TQFont toFont() const; + const TQPixmap toPixmap() const; + const TQImage toImage() const; + const TQBrush toBrush() const; + const TQPoint toPoint() const; + const TQRect toRect() const; + const TQSize toSize() const; + const TQColor toColor() const; + const TQPalette toPalette() const; + const TQColorGroup toColorGroup() const; + const TQIconSet toIconSet() const; + const TQPointArray toPointArray() const; + const TQBitmap toBitmap() const; + const TQRegion toRegion() const; + const TQCursor toCursor() const; + const TQDate toDate() const; + const TQTime toTime() const; + const TQDateTime toDateTime() const; + const TQByteArray toByteArray() const; + const TQBitArray toBitArray() const; +#ifndef QT_NO_ACCEL + const TQKeySequence toKeySequence() const; +#endif + const TQPen toPen() const; + int toInt( bool * ok=0 ) const; + uint toUInt( bool * ok=0 ) const; + Q_LLONG toLongLong( bool * ok=0 ) const; + Q_ULLONG toULongLong( bool * ok=0 ) const; + bool toBool() const; + double toDouble( bool * ok=0 ) const; +#ifndef QT_NO_TEMPLATE_VARIANT + const TQValueList<TQVariant> toList() const; + const TQMap<TQString,TQVariant> toMap() const; +#endif + TQSizePolicy toSizePolicy() const; + +#ifndef QT_NO_TEMPLATE_VARIANT + TQValueListConstIterator<TQString> stringListBegin() const; + TQValueListConstIterator<TQString> stringListEnd() const; + TQValueListConstIterator<TQVariant> listBegin() const; + TQValueListConstIterator<TQVariant> listEnd() const; + TQMapConstIterator<TQString,TQVariant> mapBegin() const; + TQMapConstIterator<TQString,TQVariant> mapEnd() const; + TQMapConstIterator<TQString,TQVariant> mapFind( const TQString& ) const; +#endif + TQString& asString(); + TQCString& asCString(); +#ifndef QT_NO_STRINGLIST + TQStringList& asStringList(); +#endif + TQFont& asFont(); + TQPixmap& asPixmap(); + TQImage& asImage(); + TQBrush& asBrush(); + TQPoint& asPoint(); + TQRect& asRect(); + TQSize& asSize(); + TQColor& asColor(); + TQPalette& asPalette(); + TQColorGroup& asColorGroup(); + TQIconSet& asIconSet(); + TQPointArray& asPointArray(); + TQBitmap& asBitmap(); + TQRegion& asRegion(); + TQCursor& asCursor(); + TQDate& asDate(); + TQTime& asTime(); + TQDateTime& asDateTime(); + TQByteArray& asByteArray(); + TQBitArray& asBitArray(); +#ifndef QT_NO_ACCEL + TQKeySequence& asKeySequence(); +#endif + TQPen& asPen(); + int& asInt(); + uint& asUInt(); + Q_LLONG& asLongLong(); + Q_ULLONG& asULongLong(); + bool& asBool(); + double& asDouble(); +#ifndef QT_NO_TEMPLATE_VARIANT + TQValueList<TQVariant>& asList(); + TQMap<TQString,TQVariant>& asMap(); +#endif + TQSizePolicy& asSizePolicy(); + +#ifndef QT_NO_DATASTREAM + void load( TQDataStream& ); + void save( TQDataStream& ) const; +#endif + static const char* typeToName( Type typ ); + static Type nameToType( const char* name ); + +private: + void detach(); + + class Private : public TQShared + { + public: + Private(); + Private( Private* ); + ~Private(); + + void clear(); + + Type typ; + union + { + uint u; + int i; + Q_LLONG ll; + Q_ULLONG ull; + bool b; + double d; + void *ptr; + } value; + uint is_null : 1; // ## 4.0 merge with typ + }; + + Private* d; + +public: + void* rawAccess( void* ptr = 0, Type typ = Invalid, bool deepCopy = FALSE ); +}; + +// down here for GCC 2.7.* compatibility +#ifndef QT_H +#include "qvaluelist.h" +#include "qstringlist.h" +#include "qmap.h" +#endif // QT_H + +inline TQVariant::Type TQVariant::type() const +{ + return d->typ; +} + +inline bool TQVariant::isValid() const +{ + return (d->typ != Invalid); +} + +#ifndef QT_NO_TEMPLATE_VARIANT +inline TQValueListConstIterator<TQString> TQVariant::stringListBegin() const +{ + if ( d->typ != StringList ) + return TQValueListConstIterator<TQString>(); + return ((const TQStringList*)d->value.ptr)->begin(); +} + +inline TQValueListConstIterator<TQString> TQVariant::stringListEnd() const +{ + if ( d->typ != StringList ) + return TQValueListConstIterator<TQString>(); + return ((const TQStringList*)d->value.ptr)->end(); +} + +inline TQValueListConstIterator<TQVariant> TQVariant::listBegin() const +{ + if ( d->typ != List ) + return TQValueListConstIterator<TQVariant>(); + return ((const TQValueList<TQVariant>*)d->value.ptr)->begin(); +} + +inline TQValueListConstIterator<TQVariant> TQVariant::listEnd() const +{ + if ( d->typ != List ) + return TQValueListConstIterator<TQVariant>(); + return ((const TQValueList<TQVariant>*)d->value.ptr)->end(); +} + +inline TQMapConstIterator<TQString,TQVariant> TQVariant::mapBegin() const +{ + if ( d->typ != Map ) + return TQMapConstIterator<TQString,TQVariant>(); + return ((const TQMap<TQString,TQVariant>*)d->value.ptr)->begin(); +} + +inline TQMapConstIterator<TQString,TQVariant> TQVariant::mapEnd() const +{ + if ( d->typ != Map ) + return TQMapConstIterator<TQString,TQVariant>(); + return ((const TQMap<TQString,TQVariant>*)d->value.ptr)->end(); +} + +inline TQMapConstIterator<TQString,TQVariant> TQVariant::mapFind( const TQString& key ) const +{ + if ( d->typ != Map ) + return TQMapConstIterator<TQString,TQVariant>(); + return ((const TQMap<TQString,TQVariant>*)d->value.ptr)->find( key ); +} +#endif + +#ifndef QT_NO_DATASTREAM +Q_EXPORT TQDataStream& operator>> ( TQDataStream& s, TQVariant& p ); +Q_EXPORT TQDataStream& operator<< ( TQDataStream& s, const TQVariant& p ); +Q_EXPORT TQDataStream& operator>> ( TQDataStream& s, TQVariant::Type& p ); +Q_EXPORT TQDataStream& operator<< ( TQDataStream& s, const TQVariant::Type p ); +#endif + +#endif //QT_NO_VARIANT +#endif // TQVARIANT_H |