summaryrefslogtreecommitdiffstats
path: root/experimental/tqtinterface/qt4/src/kernel/tqvariant.h
diff options
context:
space:
mode:
Diffstat (limited to 'experimental/tqtinterface/qt4/src/kernel/tqvariant.h')
-rw-r--r--experimental/tqtinterface/qt4/src/kernel/tqvariant.h642
1 files changed, 642 insertions, 0 deletions
diff --git a/experimental/tqtinterface/qt4/src/kernel/tqvariant.h b/experimental/tqtinterface/qt4/src/kernel/tqvariant.h
new file mode 100644
index 000000000..5fb5e65df
--- /dev/null
+++ b/experimental/tqtinterface/qt4/src/kernel/tqvariant.h
@@ -0,0 +1,642 @@
+/****************************************************************************
+**
+** Definition of TQVariant class
+**
+** Created : 990414
+**
+** 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.
+**
+**********************************************************************/
+
+#ifndef TQVARIANT_H
+#define TQVARIANT_H
+
+#include "tqtglobaldefines.h"
+#include "tqnamespace.h"
+
+#ifndef TQT_H
+#include "tqstring.h"
+#endif // TQT_H
+
+#ifdef USE_QT4
+
+#include "tqvaluelist.h"
+#include "tqstringlist.h"
+#include "tqmap.h"
+#include <Qt/qvariant.h>
+
+#endif // USE_QT4
+
+#ifndef TQT_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 TQT_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
+
+#ifdef USE_QT4
+
+#include "tqtenuminheritance.h"
+
+class TQ_EXPORT TQVariant : public QVariant, virtual public TQt
+{
+public:
+ // [FIXME] Should these line up with a Qt4 structure?
+ // Also, make sure they don't collide with QVariant::Type!
+ enum TQV_NewTypes {
+ CString = (QVariant::Type)150,
+ ColorGroup = (QVariant::Type)151,
+ IconSet = (QVariant::Type)152,
+ PointArray = (QVariant::Type)153
+ };
+// typedef TQTInheritEnum< TQV_NewTypes, QVariant::Type > Type;
+ typedef TQTInheritEnum< TQV_NewTypes, QVariant::Type > TQType;
+
+ TQVariant() : QVariant() {}
+ TQVariant( const QVariant &s );
+#ifndef TQT_NO_DATASTREAM
+ TQVariant( TQDataStream &s );
+#endif
+ TQVariant( const TQString &s );
+ TQVariant( const TQCString &s );
+ TQVariant( const char *s );
+#ifndef TQT_NO_STRINGLIST
+ TQVariant( const TQStringList &s );
+#endif
+ TQVariant( const TQFont &s );
+ TQVariant( const TQPixmap &s );
+ TQVariant( const TQImage &s );
+ TQVariant( const TQBrush &s );
+ TQVariant( const TQPoint &s );
+ TQVariant( const TQRect &s );
+ TQVariant( const TQSize &s );
+ TQVariant( const TQColor &s );
+ TQVariant( const TQPalette &s );
+ TQVariant( const TQColorGroup &s );
+ TQVariant( const TQIconSet &s );
+ TQVariant( const TQPointArray &s );
+ TQVariant( const TQRegion &s );
+ TQVariant( const TQBitmap &s );
+ TQVariant( const TQCursor &s );
+ TQVariant( const TQDate &s );
+ TQVariant( const TQTime &s );
+ TQVariant( const TQDateTime &s );
+ TQVariant( const TQByteArray &s );
+ TQVariant( const TQBitArray &s );
+#ifndef TQT_NO_ACCEL
+ TQVariant( const TQKeySequence &s );
+#endif
+ TQVariant( const TQPen &s );
+#ifndef TQT_NO_TEMPLATE_VARIANT
+ TQVariant( const TQValueList<TQVariant>&s );
+ TQVariant( const TQMap<TQString,TQVariant>&s );
+#endif
+ TQVariant( int s ) : QVariant( s ) {}
+ TQVariant( uint s ) : QVariant( s ) {}
+ TQVariant( TQ_LLONG s ) : QVariant( s ) {}
+ TQVariant( TQ_ULLONG s ) : QVariant( s ) {}
+// TQVariant( bool s, int t ) : QVariant( s, t ) {}
+ TQVariant( bool s, int t ) : QVariant( s ) { TQ_UNUSED(t); }
+ TQVariant( double s ) : QVariant( s ) {}
+ TQVariant( TQSizePolicy s );
+
+ const TQFont toFont() const;
+
+ inline bool canCast(Type t) const { return canConvert(t); }
+ inline bool cast(Type t) { return convert(t); }
+
+#ifndef TQT_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 TQT_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 TQT_NO_ACCEL
+ TQKeySequence& asKeySequence();
+#endif
+ TQPen& asPen();
+ int& asInt();
+ uint& asUInt();
+ TQ_LLONG& asLongLong();
+ TQ_ULLONG& asULongLong();
+ bool& asBool();
+ double& asDouble();
+#ifndef TQT_NO_TEMPLATE_VARIANT
+ TQValueList<TQVariant>& asList();
+ TQMap<TQString,TQVariant>& asMap();
+#endif
+ TQSizePolicy& asSizePolicy();
+
+ const TQString toString() const;
+ const TQCString toCString() const;
+#ifndef TQT_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 TQT_NO_ACCEL
+ const TQKeySequence toKeySequence() const;
+#endif
+ const TQPen toPen() const;
+// int toInt( bool * ok=0 ) const;
+// uint toUInt( bool * ok=0 ) const;
+// TQ_LLONG toLongLong( bool * ok=0 ) const;
+// TQ_ULLONG toULongLong( bool * ok=0 ) const;
+// bool toBool() const;
+// double toDouble( bool * ok=0 ) const;
+#ifndef TQT_NO_TEMPLATE_VARIANT
+ const TQValueList<TQVariant> toList() const;
+ const TQMap<TQString,TQVariant> toMap() const;
+#endif
+ TQSizePolicy toSizePolicy() const;
+
+// using QVariant::operator=;
+// TQVariant& operator= ( const QVariant& );
+// inline TQVariant& operator= ( const QVariant&v ) {
+// QVariant& ref = QVariant::operator=(v);
+// return static_cast<TQVariant*>(&ref);
+// }
+
+public:
+ // Interoperability
+ static const TQVariant& convertFromQVariant( QVariant& qvr );
+};
+
+// Interoperability
+inline static const TQVariant& convertFromQVariant( const QVariant& qvr ) {
+ return (*static_cast<const TQVariant*>(&qvr));
+}
+
+#ifndef TQT_NO_TEMPLATE_VARIANT
+inline TQValueListConstIterator<TQString> TQVariant::stringListBegin() const
+{
+ if ( d.type != StringList )
+ return TQValueListConstIterator<TQString>();
+ return ((const TQStringList*)d.data.ptr)->begin();
+}
+
+inline TQValueListConstIterator<TQString> TQVariant::stringListEnd() const
+{
+ if ( d.type != StringList )
+ return TQValueListConstIterator<TQString>();
+ return ((const TQStringList*)d.data.ptr)->end();
+}
+
+inline TQValueListConstIterator<TQVariant> TQVariant::listBegin() const
+{
+ if ( d.type != List )
+ return TQValueListConstIterator<TQVariant>();
+ return ((const TQValueList<TQVariant>*)d.data.ptr)->begin();
+}
+
+inline TQValueListConstIterator<TQVariant> TQVariant::listEnd() const
+{
+ if ( d.type != List )
+ return TQValueListConstIterator<TQVariant>();
+ return ((const TQValueList<TQVariant>*)d.data.ptr)->end();
+}
+
+inline TQMapConstIterator<TQString,TQVariant> TQVariant::mapBegin() const
+{
+ if ( d.type != Map )
+ return TQMapConstIterator<TQString,TQVariant>();
+ return ((const TQMap<TQString,TQVariant>*)d.data.ptr)->begin();
+}
+
+inline TQMapConstIterator<TQString,TQVariant> TQVariant::mapEnd() const
+{
+ if ( d.type != Map )
+ return TQMapConstIterator<TQString,TQVariant>();
+ return ((const TQMap<TQString,TQVariant>*)d.data.ptr)->end();
+}
+
+inline TQMapConstIterator<TQString,TQVariant> TQVariant::mapFind( const TQString& key ) const
+{
+ if ( d.type != Map )
+ return TQMapConstIterator<TQString,TQVariant>();
+ return ((const TQMap<TQString,TQVariant>*)d.data.ptr)->tqfind( key );
+}
+#endif
+
+#else // USE_QT4
+
+class TQ_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 TQT_NO_DATASTREAM
+ TQVariant( TQDataStream& s );
+#endif
+ TQVariant( const TQString& );
+ TQVariant( const TQCString& );
+ TQVariant( const char* );
+#ifndef TQT_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 TQT_NO_ACCEL
+ TQVariant( const TQKeySequence& );
+#endif
+ TQVariant( const TQPen& );
+#ifndef TQT_NO_TEMPLATE_VARIANT
+ TQVariant( const TQValueList<TQVariant>& );
+ TQVariant( const TQMap<TQString,TQVariant>& );
+#endif
+ TQVariant( int );
+ TQVariant( uint );
+ TQVariant( TQ_LLONG );
+ TQVariant( TQ_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 TQT_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 TQT_NO_ACCEL
+ const TQKeySequence toKeySequence() const;
+#endif
+ const TQPen toPen() const;
+ int toInt( bool * ok=0 ) const;
+ uint toUInt( bool * ok=0 ) const;
+ TQ_LLONG toLongLong( bool * ok=0 ) const;
+ TQ_ULLONG toULongLong( bool * ok=0 ) const;
+ bool toBool() const;
+ double toDouble( bool * ok=0 ) const;
+#ifndef TQT_NO_TEMPLATE_VARIANT
+ const TQValueList<TQVariant> toList() const;
+ const TQMap<TQString,TQVariant> toMap() const;
+#endif
+ TQSizePolicy toSizePolicy() const;
+
+#ifndef TQT_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 TQT_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 TQT_NO_ACCEL
+ TQKeySequence& asKeySequence();
+#endif
+ TQPen& asPen();
+ int& asInt();
+ uint& asUInt();
+ TQ_LLONG& asLongLong();
+ TQ_ULLONG& asULongLong();
+ bool& asBool();
+ double& asDouble();
+#ifndef TQT_NO_TEMPLATE_VARIANT
+ TQValueList<TQVariant>& asList();
+ TQMap<TQString,TQVariant>& asMap();
+#endif
+ TQSizePolicy& asSizePolicy();
+
+#ifndef TQT_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;
+ TQ_LLONG ll;
+ TQ_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 TQT_H
+#include "tqvaluelist.h"
+#include "tqstringlist.h"
+#include "tqmap.h"
+#endif // TQT_H
+
+inline TQVariant::Type TQVariant::type() const
+{
+ return d->typ;
+}
+
+inline bool TQVariant::isValid() const
+{
+ return (d->typ != Invalid);
+}
+
+#ifndef TQT_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)->tqfind( key );
+}
+#endif
+
+#ifndef TQT_NO_DATASTREAM
+TQ_EXPORT TQDataStream& operator>> ( TQDataStream& s, TQVariant& p );
+TQ_EXPORT TQDataStream& operator<< ( TQDataStream& s, const TQVariant& p );
+TQ_EXPORT TQDataStream& operator>> ( TQDataStream& s, TQVariant::Type& p );
+TQ_EXPORT TQDataStream& operator<< ( TQDataStream& s, const TQVariant::Type p );
+#endif
+
+#endif // TQT_NO_VARIANT
+#endif // USE_QT4
+#endif // TQVARIANT_H