home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / qt3_emx.zip / include / qobjectdefs.h < prev    next >
C/C++ Source or Header  |  2001-10-11  |  5KB  |  166 lines

  1. /****************************************************************************
  2. ** $Id:  qt/qobjectdefs.h   3.0.0   edited Sep 19 16:32 $
  3. **
  4. ** Macros and definitions related to QObject
  5. **
  6. ** Created : 930419
  7. **
  8. ** Copyright (C) 1992-2000 Trolltech AS.  All rights reserved.
  9. **
  10. ** This file is part of the kernel module of the Qt GUI Toolkit.
  11. **
  12. ** This file may be distributed under the terms of the Q Public License
  13. ** as defined by Trolltech AS of Norway and appearing in the file
  14. ** LICENSE.QPL included in the packaging of this file.
  15. **
  16. ** This file may be distributed and/or modified under the terms of the
  17. ** GNU General Public License version 2 as published by the Free Software
  18. ** Foundation and appearing in the file LICENSE.GPL included in the
  19. ** packaging of this file.
  20. **
  21. ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
  22. ** licenses may use this file in accordance with the Qt Commercial License
  23. ** Agreement provided with the Software.
  24. **
  25. ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  26. ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  27. **
  28. ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
  29. **   information about Qt Commercial License Agreements.
  30. ** See http://www.trolltech.com/qpl/ for QPL licensing information.
  31. ** See http://www.trolltech.com/gpl/ for GPL licensing information.
  32. **
  33. ** Contact info@trolltech.com if any conditions of this licensing are
  34. ** not clear to you.
  35. **
  36. **********************************************************************/
  37.  
  38. #ifndef QOBJECTDEFS_H
  39. #define QOBJECTDEFS_H
  40.  
  41. #ifndef QT_H
  42. #include "qglobal.h"
  43. #endif // QT_H
  44.  
  45.  
  46. #ifndef QT_NO_TRANSLATION
  47. # ifndef QT_NO_TEXTCODEC
  48. // full set of tr functions
  49. #  define QT_TR_FUNCTIONS \
  50.     static QString tr( const char *, const char * = 0 ); \
  51.     static QString trUtf8( const char *, const char * = 0 );
  52. # else
  53. // no QTextCodec, no utf8
  54. #  define QT_TR_FUNCTIONS \
  55.     static QString tr( const char *, const char * = 0 );
  56. # endif
  57. #else
  58. // inherit the ones from QObject
  59. # define QT_TR_FUNCTIONS
  60. #endif
  61.  
  62. #ifndef QT_NO_PROPERTIES
  63. # define QT_PROP_FUNCTIONS \
  64.     virtual bool qt_property( int, int, QVariant* );
  65. #else
  66. # define QT_PROP_FUNCTIONS
  67. #endif
  68.  
  69. // The following macros are our "extensions" to C++
  70. // They are used, strictly speaking, only by the moc.
  71. struct QUObject;
  72.  
  73. #ifdef QT_MOC_CPP
  74. #define slots                slots
  75. #define signals            signals
  76. #define Q_CLASSINFO( name, value ) Q_CLASSINFO( name, value )
  77. #define Q_PROPERTY( text )        Q_PROPERTY( text )
  78. #define Q_OVERRIDE( text )        Q_OVERRIDE( text )
  79. #define Q_ENUMS( x )            Q_ENUMS( x )
  80. #define Q_SETS( x )            Q_SETS( x )
  81.  /* tmake ignore Q_OBJECT */
  82. #define Q_OBJECT            Q_OBJECT
  83.  /* tmake ignore Q_OBJECT */
  84. #define Q_OBJECT_FAKE            Q_OBJECT_FAKE
  85.  
  86. #else
  87. #define slots                    // slots: in class
  88. #define signals protected            // signals: in class
  89. #ifndef QT_NO_EMIT
  90. #define emit                    // emit signal
  91. #endif
  92. #define Q_CLASSINFO( name, value )        // class info
  93. #define Q_PROPERTY( text )            // property
  94. #define Q_OVERRIDE( text )            // override property
  95. #define Q_ENUMS( x )
  96. #define Q_SETS( x )
  97.  
  98. /* tmake ignore Q_OBJECT */
  99. #define Q_OBJECT                            \
  100. public:                                    \
  101.     virtual QMetaObject *metaObject() const {                 \
  102.          return staticMetaObject();                    \
  103.     }                                    \
  104.     virtual const char *className() const;                \
  105.     virtual void* qt_cast( const char* );                 \
  106.     virtual bool qt_invoke( int, QUObject* );                 \
  107.     virtual bool qt_emit( int, QUObject* );                 \
  108.     QT_PROP_FUNCTIONS                            \
  109.     static QMetaObject* staticMetaObject();                \
  110.     QObject* qObject() { return (QObject*)this; }             \
  111.     QT_TR_FUNCTIONS                            \
  112. private:                                \
  113.     static QMetaObject *metaObj;
  114.  
  115. /* tmake ignore Q_OBJECT */
  116. #define Q_OBJECT_FAKE Q_OBJECT
  117.  
  118. #endif
  119.  
  120. // macro for naming members
  121. #ifdef METHOD
  122. #undef METHOD
  123. #endif
  124. #ifdef SLOT
  125. #undef SLOT
  126. #endif
  127. #ifdef SIGNAL
  128. #undef SIGNAL
  129. #endif
  130.  
  131. #if defined(_OLD_CPP_)
  132. #define METHOD(a)    "0""a"
  133. #define SLOT(a)        "1""a"
  134. #define SIGNAL(a)    "2""a"
  135. #else
  136. #define METHOD(a)    "0"#a
  137. #define SLOT(a)        "1"#a
  138. #define SIGNAL(a)    "2"#a
  139. #endif
  140.  
  141. #ifndef QT_CLEAN_NAMESPACE
  142. #define METHOD_CODE    0            // member type codes
  143. #define SLOT_CODE    1
  144. #define SIGNAL_CODE    2
  145. #endif
  146.  
  147. #define QMETHOD_CODE    0            // member type codes
  148. #define QSLOT_CODE    1
  149. #define QSIGNAL_CODE    2
  150.  
  151. class QObject;
  152. class QMetaObject;
  153. class QSignal;
  154. class QConnection;
  155. class QEvent;
  156. struct QMetaData;
  157. class QConnectionList;
  158. class QConnectionListIt;
  159. class QSignalVec;
  160. class QObjectList;
  161. class QObjectListIt;
  162. class QMemberDict;
  163.  
  164.  
  165. #endif // QOBJECTDEFS_H
  166.