00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef QGLOBAL_H
00043 #define QGLOBAL_H
00044
00045 #include <stddef.h>
00046
00047 #define QT_VERSION_STR "4.7.1"
00048
00049
00050
00051 #define QT_VERSION 0x040701
00052
00053
00054
00055 #define QT_VERSION_CHECK(major, minor, patch) ((major<<16)|(minor<<8)|(patch))
00056
00057 #define QT_PACKAGEDATE_STR "2010-11-06"
00058
00059 #define QT_PACKAGE_TAG "1b3f43c997b00d6b0d435ed8be08596c913a0189"
00060
00061 #if !defined(QT_BUILD_MOC)
00062 #include <QtCore/qconfig.h>
00063 #endif
00064
00065 #ifdef __cplusplus
00066
00067 #ifndef QT_NAMESPACE
00068
00069 # define QT_PREPEND_NAMESPACE(name) ::name
00070 # define QT_USE_NAMESPACE
00071 # define QT_BEGIN_NAMESPACE
00072 # define QT_END_NAMESPACE
00073 # define QT_BEGIN_INCLUDE_NAMESPACE
00074 # define QT_END_INCLUDE_NAMESPACE
00075 # define QT_BEGIN_MOC_NAMESPACE
00076 # define QT_END_MOC_NAMESPACE
00077 # define QT_FORWARD_DECLARE_CLASS(name) class name;
00078 # define QT_FORWARD_DECLARE_STRUCT(name) struct name;
00079 # define QT_MANGLE_NAMESPACE(name) name
00080
00081 #else
00082
00083 # define QT_PREPEND_NAMESPACE(name) ::QT_NAMESPACE::name
00084 # define QT_USE_NAMESPACE using namespace ::QT_NAMESPACE;
00085 # define QT_BEGIN_NAMESPACE namespace QT_NAMESPACE {
00086 # define QT_END_NAMESPACE }
00087 # define QT_BEGIN_INCLUDE_NAMESPACE }
00088 # define QT_END_INCLUDE_NAMESPACE namespace QT_NAMESPACE {
00089 # define QT_BEGIN_MOC_NAMESPACE QT_USE_NAMESPACE
00090 # define QT_END_MOC_NAMESPACE
00091 # define QT_FORWARD_DECLARE_CLASS(name) \
00092 QT_BEGIN_NAMESPACE class name; QT_END_NAMESPACE \
00093 using QT_PREPEND_NAMESPACE(name);
00094
00095 # define QT_FORWARD_DECLARE_STRUCT(name) \
00096 QT_BEGIN_NAMESPACE struct name; QT_END_NAMESPACE \
00097 using QT_PREPEND_NAMESPACE(name);
00098
00099 # define QT_MANGLE_NAMESPACE0(x) x
00100 # define QT_MANGLE_NAMESPACE1(a, b) a##_##b
00101 # define QT_MANGLE_NAMESPACE2(a, b) QT_MANGLE_NAMESPACE1(a,b)
00102 # define QT_MANGLE_NAMESPACE(name) QT_MANGLE_NAMESPACE2( \
00103 QT_MANGLE_NAMESPACE0(name), QT_MANGLE_NAMESPACE0(QT_NAMESPACE))
00104
00105 namespace QT_NAMESPACE {}
00106
00107 # ifndef QT_BOOTSTRAPPED
00108 # ifndef QT_NO_USING_NAMESPACE
00109
00110
00111
00112
00113
00114
00115 QT_USE_NAMESPACE
00116 # endif
00117 # endif
00118
00119 #endif
00120
00121 #else
00122
00123 # define QT_BEGIN_NAMESPACE
00124 # define QT_END_NAMESPACE
00125 # define QT_USE_NAMESPACE
00126 # define QT_BEGIN_INCLUDE_NAMESPACE
00127 # define QT_END_INCLUDE_NAMESPACE
00128
00129 #endif
00130
00131 #if defined(Q_OS_MAC) && !defined(Q_CC_INTEL)
00132 #define QT_BEGIN_HEADER extern "C++" {
00133 #define QT_END_HEADER }
00134 #define QT_BEGIN_INCLUDE_HEADER }
00135 #define QT_END_INCLUDE_HEADER extern "C++" {
00136 #else
00137 #define QT_BEGIN_HEADER
00138 #define QT_END_HEADER
00139 #define QT_BEGIN_INCLUDE_HEADER
00140 #define QT_END_INCLUDE_HEADER extern "C++"
00141 #endif
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169
00170
00171
00172
00173
00174
00175
00176
00177
00178 #if defined(__APPLE__) && (defined(__GNUC__) || defined(__xlC__) || defined(__xlc__))
00179 # define Q_OS_DARWIN
00180 # define Q_OS_BSD4
00181 # ifdef __LP64__
00182 # define Q_OS_DARWIN64
00183 # else
00184 # define Q_OS_DARWIN32
00185 # endif
00186 #elif defined(__SYMBIAN32__) || defined(SYMBIAN)
00187 # define Q_OS_SYMBIAN
00188 # define Q_NO_POSIX_SIGNALS
00189 # define QT_NO_GETIFADDRS
00190 #elif defined(__CYGWIN__)
00191 # define Q_OS_CYGWIN
00192 #elif defined(MSDOS) || defined(_MSDOS)
00193 # define Q_OS_MSDOS
00194 #elif defined(__OS2__)
00195 # if defined(__EMX__)
00196 # define Q_OS_OS2EMX
00197 # else
00198 # define Q_OS_OS2
00199 # endif
00200 #elif !defined(SAG_COM) && (defined(WIN64) || defined(_WIN64) || defined(__WIN64__))
00201 # define Q_OS_WIN32
00202 # define Q_OS_WIN64
00203 #elif !defined(SAG_COM) && (defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__))
00204 # if defined(WINCE) || defined(_WIN32_WCE)
00205 # define Q_OS_WINCE
00206 # else
00207 # define Q_OS_WIN32
00208 # endif
00209 #elif defined(__MWERKS__) && defined(__INTEL__)
00210 # define Q_OS_WIN32
00211 #elif defined(__sun) || defined(sun)
00212 # define Q_OS_SOLARIS
00213 #elif defined(hpux) || defined(__hpux)
00214 # define Q_OS_HPUX
00215 #elif defined(__ultrix) || defined(ultrix)
00216 # define Q_OS_ULTRIX
00217 #elif defined(sinix)
00218 # define Q_OS_RELIANT
00219 #elif defined(__linux__) || defined(__linux)
00220 # define Q_OS_LINUX
00221 #elif defined(__FreeBSD__) || defined(__DragonFly__)
00222 # define Q_OS_FREEBSD
00223 # define Q_OS_BSD4
00224 #elif defined(__NetBSD__)
00225 # define Q_OS_NETBSD
00226 # define Q_OS_BSD4
00227 #elif defined(__OpenBSD__)
00228 # define Q_OS_OPENBSD
00229 # define Q_OS_BSD4
00230 #elif defined(__bsdi__)
00231 # define Q_OS_BSDI
00232 # define Q_OS_BSD4
00233 #elif defined(__sgi)
00234 # define Q_OS_IRIX
00235 #elif defined(__osf__)
00236 # define Q_OS_OSF
00237 #elif defined(_AIX)
00238 # define Q_OS_AIX
00239 #elif defined(__Lynx__)
00240 # define Q_OS_LYNX
00241 #elif defined(__GNU__)
00242 # define Q_OS_HURD
00243 #elif defined(__DGUX__)
00244 # define Q_OS_DGUX
00245 #elif defined(__QNXNTO__)
00246 # define Q_OS_QNX
00247 #elif defined(_SEQUENT_)
00248 # define Q_OS_DYNIX
00249 #elif defined(_SCO_DS)
00250 # define Q_OS_SCO
00251 #elif defined(__USLC__)
00252 # define Q_OS_UNIXWARE
00253 #elif defined(__svr4__) && defined(i386)
00254 # define Q_OS_UNIXWARE
00255 #elif defined(__INTEGRITY)
00256 # define Q_OS_INTEGRITY
00257 #elif defined(VXWORKS)
00258 # define Q_OS_VXWORKS
00259 #elif defined(__MAKEDEPEND__)
00260 #else
00261 # error "Qt has not been ported to this OS - talk to qt-bugs@trolltech.com"
00262 #endif
00263
00264 #if defined(Q_OS_WIN32) || defined(Q_OS_WIN64) || defined(Q_OS_WINCE)
00265 # define Q_OS_WIN
00266 #endif
00267
00268 #if defined(Q_OS_DARWIN)
00269 # define Q_OS_MAC
00270 # define Q_OS_MACX
00271 # if defined(Q_OS_DARWIN64)
00272 # define Q_OS_MAC64
00273 # elif defined(Q_OS_DARWIN32)
00274 # define Q_OS_MAC32
00275 # endif
00276 #endif
00277
00278 #ifdef QT_AUTODETECT_COCOA
00279 # ifdef Q_OS_MAC64
00280 # define QT_MAC_USE_COCOA 1
00281 # define QT_BUILD_KEY QT_BUILD_KEY_COCOA
00282 # else
00283 # define QT_BUILD_KEY QT_BUILD_KEY_CARBON
00284 # endif
00285 #endif
00286
00287 #if defined(Q_OS_MAC64) && !defined(QT_MAC_USE_COCOA) && !defined(QT_BUILD_QMAKE)
00288 #error "You are building a 64-bit application, but using a 32-bit version of Qt. Check your build configuration."
00289 #endif
00290
00291 #if defined(Q_OS_MSDOS) || defined(Q_OS_OS2) || defined(Q_OS_WIN)
00292 # undef Q_OS_UNIX
00293 #elif !defined(Q_OS_UNIX)
00294 # define Q_OS_UNIX
00295 #endif
00296
00297 #if defined(Q_OS_DARWIN) && !defined(QT_LARGEFILE_SUPPORT)
00298 # define QT_LARGEFILE_SUPPORT 64
00299 #endif
00300
00301 #ifdef Q_OS_DARWIN
00302 # ifdef MAC_OS_X_VERSION_MIN_REQUIRED
00303 # undef MAC_OS_X_VERSION_MIN_REQUIRED
00304 # endif
00305 # define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_4
00306 # include <AvailabilityMacros.h>
00307 # if !defined(MAC_OS_X_VERSION_10_3)
00308 # define MAC_OS_X_VERSION_10_3 MAC_OS_X_VERSION_10_2 + 1
00309 # endif
00310 # if !defined(MAC_OS_X_VERSION_10_4)
00311 # define MAC_OS_X_VERSION_10_4 MAC_OS_X_VERSION_10_3 + 1
00312 # endif
00313 # if !defined(MAC_OS_X_VERSION_10_5)
00314 # define MAC_OS_X_VERSION_10_5 MAC_OS_X_VERSION_10_4 + 1
00315 # endif
00316 # if !defined(MAC_OS_X_VERSION_10_6)
00317 # define MAC_OS_X_VERSION_10_6 MAC_OS_X_VERSION_10_5 + 1
00318 # endif
00319 # if (MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_6)
00320 # warning "This version of Mac OS X is unsupported"
00321 # endif
00322 #endif
00323
00324 #ifdef __LSB_VERSION__
00325 # if __LSB_VERSION__ < 40
00326 # error "This version of the Linux Standard Base is unsupported"
00327 # endif
00328 #ifndef QT_LINUXBASE
00329 # define QT_LINUXBASE
00330 #endif
00331 #endif
00332
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00351
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364 #if defined(__ghs)
00365 # define Q_OUTOFLINE_TEMPLATE inline
00366 #endif
00367
00368
00369 #if defined(__DMC__) || defined(__SC__)
00370 # define Q_CC_SYM
00371
00372 # if defined(__SC__) && __SC__ < 0x750
00373 # define Q_NO_EXPLICIT_KEYWORD
00374 # endif
00375 # define Q_NO_USING_KEYWORD
00376
00377 #elif defined(__MWERKS__)
00378 # define Q_CC_MWERKS
00379 # if defined(__EMU_SYMBIAN_OS__)
00380 # define Q_CC_NOKIAX86
00381 # endif
00382
00383
00384 #elif defined(_MSC_VER)
00385 # define Q_CC_MSVC
00386
00387 # define Q_CANNOT_DELETE_CONSTANT
00388 # define Q_OUTOFLINE_TEMPLATE inline
00389 # define Q_NO_TEMPLATE_FRIENDS
00390 # define QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
00391 # define Q_ALIGNOF(type) __alignof(type)
00392 # define Q_DECL_ALIGN(n) __declspec(align(n))
00393
00394
00395 # if _MSC_VER >= 1300
00396 # define Q_CC_MSVC_NET
00397 # if _MSC_VER < 1310 || (defined(Q_OS_WIN64) && defined(_M_IA64))
00398 # define Q_TYPENAME
00399 # else
00400 # undef QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
00401 # endif
00402 # else
00403 # define Q_NO_USING_KEYWORD
00404 # define QT_NO_MEMBER_TEMPLATES
00405 # endif
00406 # if _MSC_VER < 1310
00407 # define QT_NO_QOBJECT_CHECK
00408 # define Q_TYPENAME
00409 # define QT_NO_TEMPLATE_TEMPLATE_PARAMETERS
00410 # endif
00411
00412 # if defined(__INTEL_COMPILER)
00413 # define Q_CC_INTEL
00414 # endif
00415
00416 # if (defined(Q_CC_MSVC) && defined(_M_X64))
00417 # undef QT_HAVE_SSE
00418 # undef QT_HAVE_MMX
00419 # undef QT_HAVE_3DNOW
00420 # endif
00421
00422 #elif defined(__BORLANDC__) || defined(__TURBOC__)
00423 # define Q_CC_BOR
00424 # define Q_INLINE_TEMPLATE
00425 # if __BORLANDC__ < 0x502
00426 # define Q_NO_BOOL_TYPE
00427 # define Q_NO_EXPLICIT_KEYWORD
00428 # endif
00429 # define Q_NO_USING_KEYWORD
00430
00431 #elif defined(__WATCOMC__)
00432 # define Q_CC_WAT
00433
00434
00435 #elif defined(__GCCE__)
00436 # define Q_CC_GCCE
00437 # define QT_VISIBILITY_AVAILABLE
00438 # if defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__)
00439 # define QT_HAVE_ARMV6
00440 # endif
00441
00442
00443
00444
00445 #elif defined(__ARMCC__) || defined(__CC_ARM)
00446 # define Q_CC_RVCT
00447 # if __TARGET_ARCH_ARM >= 6
00448 # define QT_HAVE_ARMV6
00449 # endif
00450 #elif defined(__GNUC__)
00451 # define Q_CC_GNU
00452 # define Q_C_CALLBACKS
00453 # if defined(__MINGW32__)
00454 # define Q_CC_MINGW
00455 # endif
00456 # if defined(__INTEL_COMPILER)
00457
00458 # define Q_CC_INTEL
00459 # define Q_NO_TEMPLATE_FRIENDS
00460 # endif
00461 # ifdef __APPLE__
00462 # define Q_NO_DEPRECATED_CONSTRUCTORS
00463 # endif
00464 # if __GNUC__ == 2 && __GNUC_MINOR__ <= 7
00465 # define Q_FULL_TEMPLATE_INSTANTIATION
00466 # endif
00467
00468 # if __GNUC__ == 2 && __GNUC_MINOR__ <= 95
00469 # define Q_NO_USING_KEYWORD
00470 # define QT_NO_STL_WCHAR
00471 # endif
00472 # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
00473 # define Q_ALIGNOF(type) __alignof__(type)
00474 # define Q_TYPEOF(expr) __typeof__(expr)
00475 # define Q_DECL_ALIGN(n) __attribute__((__aligned__(n)))
00476 # endif
00477
00478 # if defined(Q_OS_HPUX) && __GNUC__ == 3 && __GNUC_MINOR__ >= 1
00479 # define Q_WRONG_SB_CTYPE_MACROS
00480 # endif
00481
00482 # if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ <= 3)
00483 # define Q_NO_TEMPLATE_FRIENDS
00484 # endif
00485
00486 # if defined(Q_OS_DARWIN) && __GNUC__ == 3 && (__GNUC_MINOR__ >= 1 && __GNUC_MINOR__ < 3)
00487 # define Q_BROKEN_DEBUG_STREAM
00488 # endif
00489 # if (defined(Q_CC_GNU) || defined(Q_CC_INTEL)) && !defined(QT_MOC_CPP)
00490 # define Q_PACKED __attribute__ ((__packed__))
00491 # define Q_NO_PACKED_REFERENCE
00492 # ifndef __ARM_EABI__
00493 # define QT_NO_ARM_EABI
00494 # endif
00495 # endif
00496
00497
00498
00499
00500
00501
00502
00503
00504
00505
00506
00507
00508
00509
00510
00511
00512
00513
00514
00515
00516
00517
00518
00519 #elif defined(__xlC__)
00520 # define Q_CC_XLC
00521 # define Q_FULL_TEMPLATE_INSTANTIATION
00522 # if __xlC__ < 0x400
00523 # define Q_NO_BOOL_TYPE
00524 # define Q_NO_EXPLICIT_KEYWORD
00525 # define Q_NO_USING_KEYWORD
00526 # define Q_TYPENAME
00527 # define Q_OUTOFLINE_TEMPLATE inline
00528 # define Q_BROKEN_TEMPLATE_SPECIALIZATION
00529 # define Q_CANNOT_DELETE_CONSTANT
00530 # elif __xlC__ >= 0x0600
00531 # define Q_ALIGNOF(type) __alignof__(type)
00532 # define Q_TYPEOF(expr) __typeof__(expr)
00533 # define Q_DECL_ALIGN(n) __attribute__((__aligned__(n)))
00534 # define Q_PACKED __attribute__((__packed__))
00535 # endif
00536
00537
00538
00539
00540
00541
00542 #elif defined(__DECCXX) || defined(__DECC)
00543 # define Q_CC_DEC
00544
00545
00546 # if defined(__EDG__)
00547 # define Q_CC_EDG
00548 # endif
00549
00550
00551
00552 # if !defined(_BOOL_EXISTS)
00553 # define Q_NO_BOOL_TYPE
00554 # endif
00555
00556 # define Q_NO_USING_KEYWORD
00557
00558
00559 # if __DECCXX_VER < 60060000
00560 # define Q_TYPENAME
00561 # define Q_BROKEN_TEMPLATE_SPECIALIZATION
00562 # define Q_CANNOT_DELETE_CONSTANT
00563 # endif
00564
00565 # define Q_OUTOFLINE_TEMPLATE inline
00566
00567
00568
00569 #elif defined(__PGI)
00570 # define Q_CC_PGI
00571 # if defined(__EDG__)
00572 # define Q_CC_EDG
00573 # endif
00574
00575
00576
00577
00578
00579 #elif !defined(Q_OS_HPUX) && (defined(__EDG) || defined(__EDG__))
00580 # define Q_CC_EDG
00581
00582
00583
00584
00585
00586
00587
00588 # if !defined(_BOOL) && !defined(__BOOL_DEFINED)
00589 # define Q_NO_BOOL_TYPE
00590 # endif
00591
00592
00593 # if defined(__COMO__)
00594 # define Q_CC_COMEAU
00595 # define Q_C_CALLBACKS
00596
00597
00598
00599
00600
00601 # elif defined(__KCC)
00602 # define Q_CC_KAI
00603 # define Q_NO_USING_KEYWORD
00604
00605
00606 # elif defined(__INTEL_COMPILER)
00607 # define Q_CC_INTEL
00608
00609
00610 # elif defined(__ghs)
00611 # define Q_CC_GHS
00612
00613 # elif defined(__DCC__)
00614 # define Q_CC_DIAB
00615 # undef Q_NO_BOOL_TYPE
00616 # if !defined(__bool)
00617 # define Q_NO_BOOL_TYPE
00618 # endif
00619
00620
00621 # elif defined(__USLC__) && defined(__SCO_VERSION__)
00622 # define Q_CC_USLC
00623
00624 # if !defined(__SCO_VERSION__) || (__SCO_VERSION__ < 302200010)
00625 # define Q_OUTOFLINE_TEMPLATE inline
00626 # endif
00627 # define Q_NO_USING_KEYWORD
00628
00629
00630 # elif defined(CENTERLINE_CLPP) || defined(OBJECTCENTER)
00631 # define Q_CC_OC
00632 # define Q_NO_USING_KEYWORD
00633
00634
00635
00636 # elif defined(sinix)
00637 # define Q_CC_CDS
00638 # define Q_NO_USING_KEYWORD
00639
00640
00641 # elif defined(__sgi)
00642 # define Q_CC_MIPS
00643 # define Q_NO_USING_KEYWORD
00644 # define Q_NO_TEMPLATE_FRIENDS
00645 # if defined(_COMPILER_VERSION) && (_COMPILER_VERSION >= 740)
00646 # define Q_OUTOFLINE_TEMPLATE inline
00647 # pragma set woff 3624,3625,3649
00648 # endif
00649 # endif
00650
00651
00652
00653 #elif defined(_DIAB_TOOL)
00654 # define Q_CC_DIAB
00655
00656
00657 #elif defined(__HIGHC__)
00658 # define Q_CC_HIGHC
00659
00660 #elif defined(__SUNPRO_CC) || defined(__SUNPRO_C)
00661 # define Q_CC_SUN
00662
00663
00664
00665
00666 # if __SUNPRO_CC >= 0x500
00667 # define QT_NO_TEMPLATE_TEMPLATE_PARAMETERS
00668
00669 # if __SUNPRO_CC >= 0x590
00670 # define Q_ALIGNOF(type) __alignof__(type)
00671 # define Q_TYPEOF(expr) __typeof__(expr)
00672 # define Q_DECL_ALIGN(n) __attribute__((__aligned__(n)))
00673 # endif
00674 # if __SUNPRO_CC >= 0x550
00675 # define Q_DECL_EXPORT __global
00676 # endif
00677 # if __SUNPRO_CC < 0x5a0
00678 # define Q_NO_TEMPLATE_FRIENDS
00679 # endif
00680 # if !defined(_BOOL)
00681 # define Q_NO_BOOL_TYPE
00682 # endif
00683 # if defined(__SUNPRO_CC_COMPAT) && (__SUNPRO_CC_COMPAT <= 4)
00684 # define Q_NO_USING_KEYWORD
00685 # endif
00686 # define Q_C_CALLBACKS
00687
00688 # else
00689 # define Q_NO_BOOL_TYPE
00690 # define Q_NO_EXPLICIT_KEYWORD
00691 # define Q_NO_USING_KEYWORD
00692 # endif
00693
00694
00695
00696 #elif defined(sinix)
00697 # define Q_CC_EDG
00698 # define Q_CC_CDS
00699 # if !defined(_BOOL)
00700 # define Q_NO_BOOL_TYPE
00701 # endif
00702 # define Q_BROKEN_TEMPLATE_SPECIALIZATION
00703
00704 #elif defined(Q_OS_HPUX)
00705
00706 # if defined(__HP_aCC) || __cplusplus >= 199707L
00707 # define Q_NO_TEMPLATE_FRIENDS
00708 # define Q_CC_HPACC
00709 # if __HP_aCC-0 < 060000
00710 # define QT_NO_TEMPLATE_TEMPLATE_PARAMETERS
00711 # define Q_DECL_EXPORT __declspec(dllexport)
00712 # define Q_DECL_IMPORT __declspec(dllimport)
00713 # endif
00714 # if __HP_aCC-0 >= 061200
00715 # define Q_DECL_ALIGNED(n) __attribute__((aligned(n)))
00716 # endif
00717 # if __HP_aCC-0 >= 062000
00718 # define Q_DECL_EXPORT __attribute__((visibility("default")))
00719 # define Q_DECL_IMPORT Q_DECL_EXPORT
00720 # endif
00721 # else
00722 # define Q_CC_HP
00723 # define Q_NO_BOOL_TYPE
00724 # define Q_FULL_TEMPLATE_INSTANTIATION
00725 # define Q_BROKEN_TEMPLATE_SPECIALIZATION
00726 # define Q_NO_EXPLICIT_KEYWORD
00727 # endif
00728 # define Q_NO_USING_KEYWORD
00729
00730 #elif defined(__WINSCW__) && !defined(Q_CC_NOKIAX86)
00731 # define Q_CC_NOKIAX86
00732
00733
00734 #else
00735 # error "Qt has not been tested with this compiler - talk to qt-bugs@trolltech.com"
00736 #endif
00737
00738 #ifndef Q_PACKED
00739 # define Q_PACKED
00740 # undef Q_NO_PACKED_REFERENCE
00741 #endif
00742
00743 #ifndef Q_CONSTRUCTOR_FUNCTION
00744 # define Q_CONSTRUCTOR_FUNCTION0(AFUNC) \
00745 static const int AFUNC ## __init_variable__ = AFUNC();
00746 # define Q_CONSTRUCTOR_FUNCTION(AFUNC) Q_CONSTRUCTOR_FUNCTION0(AFUNC)
00747 #endif
00748
00749 #ifndef Q_DESTRUCTOR_FUNCTION
00750 # define Q_DESTRUCTOR_FUNCTION0(AFUNC) \
00751 class AFUNC ## __dest_class__ { \
00752 public: \
00753 inline AFUNC ## __dest_class__() { } \
00754 inline ~ AFUNC ## __dest_class__() { AFUNC(); } \
00755 } AFUNC ## __dest_instance__;
00756 # define Q_DESTRUCTOR_FUNCTION(AFUNC) Q_DESTRUCTOR_FUNCTION0(AFUNC)
00757 #endif
00758
00759 #ifndef Q_REQUIRED_RESULT
00760 # if defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1))
00761 # define Q_REQUIRED_RESULT __attribute__ ((warn_unused_result))
00762 # else
00763 # define Q_REQUIRED_RESULT
00764 # endif
00765 #endif
00766
00767 #ifndef Q_COMPILER_MANGLES_RETURN_TYPE
00768 # if defined(Q_CC_MSVC)
00769 # define Q_COMPILER_MANGLES_RETURN_TYPE
00770 # endif
00771 #endif
00772
00773
00774
00775
00776
00777
00778
00779
00780
00781
00782
00783
00784
00785
00786 #if defined(Q_OS_MSDOS)
00787 # define Q_WS_WIN16
00788 # error "Qt requires Win32 and does not work with Windows 3.x"
00789 #elif defined(_WIN32_X11_)
00790 # define Q_WS_X11
00791 #elif defined(Q_OS_WIN32)
00792 # define Q_WS_WIN32
00793 # if defined(Q_OS_WIN64)
00794 # define Q_WS_WIN64
00795 # endif
00796 #elif defined(Q_OS_WINCE)
00797 # define Q_WS_WIN32
00798 # define Q_WS_WINCE
00799 # if defined(Q_OS_WINCE_WM)
00800 # define Q_WS_WINCE_WM
00801 # endif
00802 #elif defined(Q_OS_OS2)
00803 # define Q_WS_PM
00804 # error "Qt does not work with OS/2 Presentation Manager or Workplace Shell"
00805 #elif defined(Q_OS_UNIX)
00806 # if defined(Q_OS_MAC) && !defined(__USE_WS_X11__) && !defined(Q_WS_QWS)
00807 # define Q_WS_MAC
00808 # define Q_WS_MACX
00809 # if defined(Q_OS_MAC64)
00810 # define Q_WS_MAC64
00811 # elif defined(Q_OS_MAC32)
00812 # define Q_WS_MAC32
00813 # endif
00814 # elif defined(Q_OS_SYMBIAN)
00815 # if !defined(QT_NO_S60)
00816 # define Q_WS_S60
00817 # endif
00818 # elif !defined(Q_WS_QWS)
00819 # define Q_WS_X11
00820 # endif
00821 #endif
00822
00823 #if defined(Q_WS_WIN16) || defined(Q_WS_WIN32) || defined(Q_WS_WINCE)
00824 # define Q_WS_WIN
00825 #endif
00826
00827 QT_BEGIN_HEADER
00828 QT_BEGIN_NAMESPACE
00829
00830
00831
00832
00833
00834
00835
00836 typedef signed char qint8;
00837 typedef unsigned char quint8;
00838 typedef short qint16;
00839 typedef unsigned short quint16;
00840 typedef int qint32;
00841 typedef unsigned int quint32;
00842 #if defined(Q_OS_WIN) && !defined(Q_CC_GNU) && !defined(Q_CC_MWERKS)
00843 # define Q_INT64_C(c) c ## i64
00844 # define Q_UINT64_C(c) c ## ui64
00845 typedef __int64 qint64;
00846 typedef unsigned __int64 quint64;
00847 #else
00848 # define Q_INT64_C(c) static_cast<long long>(c ## LL)
00849 # define Q_UINT64_C(c) static_cast<unsigned long long>(c ## ULL)
00850 typedef long long qint64;
00851 typedef unsigned long long quint64;
00852 #endif
00853
00854 typedef qint64 qlonglong;
00855 typedef quint64 qulonglong;
00856
00857 #ifndef QT_POINTER_SIZE
00858 # if defined(Q_OS_WIN64)
00859 # define QT_POINTER_SIZE 8
00860 # elif defined(Q_OS_WIN32) || defined(Q_OS_WINCE) || defined(Q_OS_SYMBIAN)
00861 # define QT_POINTER_SIZE 4
00862 # endif
00863 #endif
00864
00865 #define Q_INIT_RESOURCE_EXTERN(name) \
00866 extern int QT_MANGLE_NAMESPACE(qInitResources_ ## name) ();
00867
00868 #define Q_INIT_RESOURCE(name) \
00869 do { extern int QT_MANGLE_NAMESPACE(qInitResources_ ## name) (); \
00870 QT_MANGLE_NAMESPACE(qInitResources_ ## name) (); } while (0)
00871 #define Q_CLEANUP_RESOURCE(name) \
00872 do { extern int QT_MANGLE_NAMESPACE(qCleanupResources_ ## name) (); \
00873 QT_MANGLE_NAMESPACE(qCleanupResources_ ## name) (); } while (0)
00874
00875 #if defined(__cplusplus)
00876
00877
00878
00879
00880
00881
00882
00883 template <int> struct QIntegerForSize;
00884 template <> struct QIntegerForSize<1> { typedef quint8 Unsigned; typedef qint8 Signed; };
00885 template <> struct QIntegerForSize<2> { typedef quint16 Unsigned; typedef qint16 Signed; };
00886 template <> struct QIntegerForSize<4> { typedef quint32 Unsigned; typedef qint32 Signed; };
00887 template <> struct QIntegerForSize<8> { typedef quint64 Unsigned; typedef qint64 Signed; };
00888 template <class T> struct QIntegerForSizeof: QIntegerForSize<sizeof(T)> { };
00889 typedef QIntegerForSizeof<void*>::Unsigned quintptr;
00890 typedef QIntegerForSizeof<void*>::Signed qptrdiff;
00891
00892
00893
00894
00895
00896 QT_BEGIN_INCLUDE_NAMESPACE
00897 typedef unsigned char uchar;
00898 typedef unsigned short ushort;
00899 typedef unsigned int uint;
00900 typedef unsigned long ulong;
00901 QT_END_INCLUDE_NAMESPACE
00902
00903 #if defined(Q_NO_BOOL_TYPE)
00904 #error "Compiler doesn't support the bool type"
00905 #endif
00906
00907
00908
00909
00910
00911 #ifndef QT_LINUXBASE
00912
00913
00914 #ifdef Q_OS_SYMBIAN
00915 #include <e32def.h>
00916
00917 #undef TRUE
00918 #undef FALSE
00919 #endif
00920 # ifndef TRUE
00921 # define TRUE true
00922 # define FALSE false
00923 # endif
00924 #endif
00925
00926
00927
00928
00929 #ifndef QT_NO_KEYWORDS
00930 # if (defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET) && !defined(Q_CC_INTEL)) || defined(Q_CC_MIPS) || (defined(Q_CC_HPACC) && defined(__ia64))
00931 # define for if(0){}else for
00932 # endif
00933 #endif
00934
00935
00936
00937
00938
00939 #if defined(Q_CC_MSVC)
00940 # define QT_STATIC_CONST static
00941 # define QT_STATIC_CONST_IMPL
00942 #else
00943 # define QT_STATIC_CONST static const
00944 # define QT_STATIC_CONST_IMPL const
00945 #endif
00946
00947
00948
00949
00950 #if defined(Q_MOC_RUN)
00951 # define Q_DECL_DEPRECATED Q_DECL_DEPRECATED
00952 #elif (defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && (__GNUC__ - 0 > 3 || (__GNUC__ - 0 == 3 && __GNUC_MINOR__ - 0 >= 2))) || defined(Q_CC_RVCT)
00953 # define Q_DECL_DEPRECATED __attribute__ ((__deprecated__))
00954 #elif defined(Q_CC_MSVC) && (_MSC_VER >= 1300)
00955 # define Q_DECL_DEPRECATED __declspec(deprecated)
00956 # if defined (Q_CC_INTEL)
00957 # define Q_DECL_VARIABLE_DEPRECATED
00958 # else
00959 # endif
00960 #else
00961 # define Q_DECL_DEPRECATED
00962 #endif
00963 #ifndef Q_DECL_VARIABLE_DEPRECATED
00964 # define Q_DECL_VARIABLE_DEPRECATED Q_DECL_DEPRECATED
00965 #endif
00966 #ifndef Q_DECL_CONSTRUCTOR_DEPRECATED
00967 # if defined(Q_MOC_RUN)
00968 # define Q_DECL_CONSTRUCTOR_DEPRECATED Q_DECL_CONSTRUCTOR_DEPRECATED
00969 # elif defined(Q_NO_DEPRECATED_CONSTRUCTORS)
00970 # define Q_DECL_CONSTRUCTOR_DEPRECATED
00971 # else
00972 # define Q_DECL_CONSTRUCTOR_DEPRECATED Q_DECL_DEPRECATED
00973 # endif
00974 #endif
00975
00976 #if defined(QT_NO_DEPRECATED)
00977
00978 # undef QT3_SUPPORT_WARNINGS
00979 # undef QT3_SUPPORT
00980 # undef QT_DEPRECATED
00981 # undef QT_DEPRECATED_VARIABLE
00982 # undef QT_DEPRECATED_CONSTRUCTOR
00983 #elif defined(QT_DEPRECATED_WARNINGS)
00984 # ifdef QT3_SUPPORT
00985
00986 # undef QT3_SUPPORT_WARNINGS
00987 # define QT3_SUPPORT_WARNINGS
00988 # endif
00989 # undef QT_DEPRECATED
00990 # define QT_DEPRECATED Q_DECL_DEPRECATED
00991 # undef QT_DEPRECATED_VARIABLE
00992 # define QT_DEPRECATED_VARIABLE Q_DECL_VARIABLE_DEPRECATED
00993 # undef QT_DEPRECATED_CONSTRUCTOR
00994 # define QT_DEPRECATED_CONSTRUCTOR explicit Q_DECL_CONSTRUCTOR_DEPRECATED
00995 #else
00996 # undef QT_DEPRECATED
00997 # define QT_DEPRECATED
00998 # undef QT_DEPRECATED_VARIABLE
00999 # define QT_DEPRECATED_VARIABLE
01000 # undef QT_DEPRECATED_CONSTRUCTOR
01001 # define QT_DEPRECATED_CONSTRUCTOR
01002 #endif
01003
01004 #if defined(QT3_SUPPORT_WARNINGS)
01005 # if !defined(QT_COMPAT_WARNINGS)
01006 # define QT_COMPAT_WARNINGS
01007 # endif
01008 # undef QT3_SUPPORT
01009 # define QT3_SUPPORT Q_DECL_DEPRECATED
01010 # undef QT3_SUPPORT_VARIABLE
01011 # define QT3_SUPPORT_VARIABLE Q_DECL_VARIABLE_DEPRECATED
01012 # undef QT3_SUPPORT_CONSTRUCTOR
01013 # define QT3_SUPPORT_CONSTRUCTOR explicit Q_DECL_CONSTRUCTOR_DEPRECATED
01014 #elif defined(QT3_SUPPORT)
01015 # if !defined(QT_COMPAT)
01016 # define QT_COMPAT
01017 # endif
01018 # undef QT3_SUPPORT
01019 # define QT3_SUPPORT
01020 # undef QT3_SUPPORT_VARIABLE
01021 # define QT3_SUPPORT_VARIABLE
01022 # undef QT3_SUPPORT_CONSTRUCTOR
01023 # define QT3_SUPPORT_CONSTRUCTOR explicit
01024 #endif
01025
01026
01027 #ifndef QT_MOC_COMPAT
01028 # if defined(QT3_SUPPORT)
01029 # define QT_MOC_COMPAT QT3_SUPPORT
01030 # else
01031 # define QT_MOC_COMPAT
01032 # endif
01033 #else
01034 # undef QT_MOC_COMPAT
01035 # define QT_MOC_COMPAT
01036 #endif
01037
01038 #ifdef QT_ASCII_CAST_WARNINGS
01039 # define QT_ASCII_CAST_WARN Q_DECL_DEPRECATED
01040 # if defined(Q_CC_GNU) && __GNUC__ < 4
01041
01042 # define QT_ASCII_CAST_WARN_CONSTRUCTOR
01043 # else
01044 # define QT_ASCII_CAST_WARN_CONSTRUCTOR Q_DECL_CONSTRUCTOR_DEPRECATED
01045 # endif
01046 #else
01047 # define QT_ASCII_CAST_WARN
01048 # define QT_ASCII_CAST_WARN_CONSTRUCTOR
01049 #endif
01050
01051 #if defined(__i386__) || defined(_WIN32) || defined(_WIN32_WCE)
01052 # if defined(Q_CC_GNU)
01053 #if !defined(Q_CC_INTEL) && ((100*(__GNUC__ - 0) + 10*(__GNUC_MINOR__ - 0) + __GNUC_PATCHLEVEL__) >= 332)
01054 # define QT_FASTCALL __attribute__((regparm(3)))
01055 #else
01056 # define QT_FASTCALL
01057 #endif
01058 # elif defined(Q_CC_MSVC) && (_MSC_VER > 1300 || defined(Q_CC_INTEL))
01059 # define QT_FASTCALL __fastcall
01060 # else
01061 # define QT_FASTCALL
01062 # endif
01063 #else
01064 # define QT_FASTCALL
01065 #endif
01066
01067
01068
01069 #if defined(Q_WS_WIN)
01070 # if defined(Q_CC_MINGW)
01071 # define QT_ENSURE_STACK_ALIGNED_FOR_SSE __attribute__ ((force_align_arg_pointer))
01072 # else
01073 # define QT_ENSURE_STACK_ALIGNED_FOR_SSE
01074 # endif
01075 # define QT_WIN_CALLBACK CALLBACK QT_ENSURE_STACK_ALIGNED_FOR_SSE
01076 #endif
01077
01078 typedef int QNoImplicitBoolCast;
01079
01080 #if defined(QT_ARCH_ARM) || defined(QT_ARCH_ARMV6) || defined(QT_ARCH_AVR32) || (defined(QT_ARCH_MIPS) && (defined(Q_WS_QWS) || defined(Q_OS_WINCE))) || defined(QT_ARCH_SH) || defined(QT_ARCH_SH4A)
01081 #define QT_NO_FPU
01082 #endif
01083
01084
01085 #if defined(QT_COORD_TYPE)
01086 typedef QT_COORD_TYPE qreal;
01087 #elif defined(QT_NO_FPU) || defined(QT_ARCH_ARM) || defined(QT_ARCH_WINDOWSCE) || defined(QT_ARCH_SYMBIAN)
01088 typedef float qreal;
01089 #else
01090 typedef double qreal;
01091 #endif
01092
01093
01094
01095
01096
01097 template <typename T>
01098 inline T qAbs(const T &t) { return t >= 0 ? t : -t; }
01099
01100 inline int qRound(qreal d)
01101 { return d >= 0.0 ? int(d + 0.5) : int(d - int(d-1) + 0.5) + int(d-1); }
01102
01103 #if defined(QT_NO_FPU) || defined(QT_ARCH_ARM) || defined(QT_ARCH_WINDOWSCE) || defined(QT_ARCH_SYMBIAN)
01104 inline qint64 qRound64(double d)
01105 { return d >= 0.0 ? qint64(d + 0.5) : qint64(d - qreal(qint64(d-1)) + 0.5) + qint64(d-1); }
01106 #else
01107 inline qint64 qRound64(qreal d)
01108 { return d >= 0.0 ? qint64(d + 0.5) : qint64(d - qreal(qint64(d-1)) + 0.5) + qint64(d-1); }
01109 #endif
01110
01111 template <typename T>
01112 inline const T &qMin(const T &a, const T &b) { if (a < b) return a; return b; }
01113 template <typename T>
01114 inline const T &qMax(const T &a, const T &b) { if (a < b) return b; return a; }
01115 template <typename T>
01116 inline const T &qBound(const T &min, const T &val, const T &max)
01117 { return qMax(min, qMin(max, val)); }
01118
01119 #ifdef QT3_SUPPORT
01120 typedef qint8 Q_INT8;
01121 typedef quint8 Q_UINT8;
01122 typedef qint16 Q_INT16;
01123 typedef quint16 Q_UINT16;
01124 typedef qint32 Q_INT32;
01125 typedef quint32 Q_UINT32;
01126 typedef qint64 Q_INT64;
01127 typedef quint64 Q_UINT64;
01128
01129 typedef qint64 Q_LLONG;
01130 typedef quint64 Q_ULLONG;
01131 #if defined(Q_OS_WIN64)
01132 typedef __int64 Q_LONG;
01133 typedef unsigned __int64 Q_ULONG;
01134 #else
01135 typedef long Q_LONG;
01136 typedef unsigned long Q_ULONG;
01137 #endif
01138
01139 # define QABS(a) qAbs(a)
01140 # define QMAX(a, b) qMax((a), (b))
01141 # define QMIN(a, b) qMin((a), (b))
01142 #endif
01143
01144
01145
01146
01147
01148 class QDataStream;
01149
01150 #ifndef QT_BUILD_KEY
01151 #define QT_BUILD_KEY "unspecified"
01152 #endif
01153
01154 #if defined(Q_WS_MAC)
01155 # ifndef QMAC_QMENUBAR_NO_EVENT
01156 # define QMAC_QMENUBAR_NO_EVENT
01157 # endif
01158 #endif
01159
01160 #if !defined(Q_WS_QWS) && !defined(QT_NO_COP)
01161 # define QT_NO_COP
01162 #endif
01163
01164 #if defined(Q_OS_VXWORKS)
01165 # define QT_NO_CRASHHANDLER // no popen
01166 # define QT_NO_PROCESS // no exec*, no fork
01167 # define QT_NO_LPR
01168 # define QT_NO_SHAREDMEMORY // only POSIX, no SysV and in the end...
01169 # define QT_NO_SYSTEMSEMAPHORE // not needed at all in a flat address space
01170 # define QT_NO_QWS_MULTIPROCESS // no processes
01171 #endif
01172
01173 # include <QtCore/qfeatures.h>
01174
01175 #define QT_SUPPORTS(FEATURE) (!defined(QT_NO_##FEATURE))
01176
01177 #ifndef Q_DECL_EXPORT
01178 # if defined(Q_OS_WIN) || defined(Q_CC_NOKIAX86) || defined(Q_CC_RVCT)
01179 # define Q_DECL_EXPORT __declspec(dllexport)
01180 # elif defined(QT_VISIBILITY_AVAILABLE)
01181 # define Q_DECL_EXPORT __attribute__((visibility("default")))
01182 # endif
01183 # ifndef Q_DECL_EXPORT
01184 # define Q_DECL_EXPORT
01185 # endif
01186 #endif
01187 #ifndef Q_DECL_IMPORT
01188 # if defined(Q_OS_WIN) || defined(Q_CC_NOKIAX86) || defined(Q_CC_RVCT)
01189 # define Q_DECL_IMPORT __declspec(dllimport)
01190 # else
01191 # define Q_DECL_IMPORT
01192 # endif
01193 #endif
01194
01195
01196
01197
01198
01199 #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN)
01200 # if defined(QT_NODLL)
01201 # undef QT_MAKEDLL
01202 # undef QT_DLL
01203 # elif defined(QT_MAKEDLL)
01204 # if defined(QT_DLL)
01205 # undef QT_DLL
01206 # endif
01207 # if defined(QT_BUILD_CORE_LIB)
01208 # define Q_CORE_EXPORT Q_DECL_EXPORT
01209 # else
01210 # define Q_CORE_EXPORT Q_DECL_IMPORT
01211 # endif
01212 # if defined(QT_BUILD_GUI_LIB)
01213 # define Q_GUI_EXPORT Q_DECL_EXPORT
01214 # else
01215 # define Q_GUI_EXPORT Q_DECL_IMPORT
01216 # endif
01217 # if defined(QT_BUILD_SQL_LIB)
01218 # define Q_SQL_EXPORT Q_DECL_EXPORT
01219 # else
01220 # define Q_SQL_EXPORT Q_DECL_IMPORT
01221 # endif
01222 # if defined(QT_BUILD_NETWORK_LIB)
01223 # define Q_NETWORK_EXPORT Q_DECL_EXPORT
01224 # else
01225 # define Q_NETWORK_EXPORT Q_DECL_IMPORT
01226 # endif
01227 # if defined(QT_BUILD_SVG_LIB)
01228 # define Q_SVG_EXPORT Q_DECL_EXPORT
01229 # else
01230 # define Q_SVG_EXPORT Q_DECL_IMPORT
01231 # endif
01232 # if defined(QT_BUILD_DECLARATIVE_LIB)
01233 # define Q_DECLARATIVE_EXPORT Q_DECL_EXPORT
01234 # else
01235 # define Q_DECLARATIVE_EXPORT Q_DECL_IMPORT
01236 # endif
01237 # if defined(QT_BUILD_OPENGL_LIB)
01238 # define Q_OPENGL_EXPORT Q_DECL_EXPORT
01239 # else
01240 # define Q_OPENGL_EXPORT Q_DECL_IMPORT
01241 # endif
01242 # if defined(QT_BUILD_MULTIMEDIA_LIB)
01243 # define Q_MULTIMEDIA_EXPORT Q_DECL_EXPORT
01244 # else
01245 # define Q_MULTIMEDIA_EXPORT Q_DECL_IMPORT
01246 # endif
01247 # if defined(QT_BUILD_OPENVG_LIB)
01248 # define Q_OPENVG_EXPORT Q_DECL_EXPORT
01249 # else
01250 # define Q_OPENVG_EXPORT Q_DECL_IMPORT
01251 # endif
01252 # if defined(QT_BUILD_XML_LIB)
01253 # define Q_XML_EXPORT Q_DECL_EXPORT
01254 # else
01255 # define Q_XML_EXPORT Q_DECL_IMPORT
01256 # endif
01257 # if defined(QT_BUILD_XMLPATTERNS_LIB)
01258 # define Q_XMLPATTERNS_EXPORT Q_DECL_EXPORT
01259 # else
01260 # define Q_XMLPATTERNS_EXPORT Q_DECL_IMPORT
01261 # endif
01262 # if defined(QT_BUILD_SCRIPT_LIB)
01263 # define Q_SCRIPT_EXPORT Q_DECL_EXPORT
01264 # else
01265 # define Q_SCRIPT_EXPORT Q_DECL_IMPORT
01266 # endif
01267 # if defined(QT_BUILD_SCRIPTTOOLS_LIB)
01268 # define Q_SCRIPTTOOLS_EXPORT Q_DECL_EXPORT
01269 # else
01270 # define Q_SCRIPTTOOLS_EXPORT Q_DECL_IMPORT
01271 # endif
01272 # if defined(QT_BUILD_CANVAS_LIB)
01273 # define Q_CANVAS_EXPORT Q_DECL_EXPORT
01274 # else
01275 # define Q_CANVAS_EXPORT Q_DECL_IMPORT
01276 # endif
01277 # if defined(QT_BUILD_COMPAT_LIB)
01278 # define Q_COMPAT_EXPORT Q_DECL_EXPORT
01279 # else
01280 # define Q_COMPAT_EXPORT Q_DECL_IMPORT
01281 # endif
01282 # if defined(QT_BUILD_DBUS_LIB)
01283 # define Q_DBUS_EXPORT Q_DECL_EXPORT
01284 # else
01285 # define Q_DBUS_EXPORT Q_DECL_IMPORT
01286 # endif
01287 # define Q_TEMPLATEDLL
01288 # elif defined(QT_DLL)
01289 # define Q_CORE_EXPORT Q_DECL_IMPORT
01290 # define Q_GUI_EXPORT Q_DECL_IMPORT
01291 # define Q_SQL_EXPORT Q_DECL_IMPORT
01292 # define Q_NETWORK_EXPORT Q_DECL_IMPORT
01293 # define Q_SVG_EXPORT Q_DECL_IMPORT
01294 # define Q_DECLARATIVE_EXPORT Q_DECL_IMPORT
01295 # define Q_CANVAS_EXPORT Q_DECL_IMPORT
01296 # define Q_OPENGL_EXPORT Q_DECL_IMPORT
01297 # define Q_MULTIMEDIA_EXPORT Q_DECL_IMPORT
01298 # define Q_OPENVG_EXPORT Q_DECL_IMPORT
01299 # define Q_XML_EXPORT Q_DECL_IMPORT
01300 # define Q_XMLPATTERNS_EXPORT Q_DECL_IMPORT
01301 # define Q_SCRIPT_EXPORT Q_DECL_IMPORT
01302 # define Q_SCRIPTTOOLS_EXPORT Q_DECL_IMPORT
01303 # define Q_COMPAT_EXPORT Q_DECL_IMPORT
01304 # define Q_DBUS_EXPORT Q_DECL_IMPORT
01305 # define Q_TEMPLATEDLL
01306 # endif
01307 # define Q_NO_DECLARED_NOT_DEFINED
01308 #else
01309 # if defined(Q_OS_LINUX) && defined(Q_CC_BOR)
01310 # define Q_TEMPLATEDLL
01311 # define Q_NO_DECLARED_NOT_DEFINED
01312 # endif
01313 # undef QT_MAKEDLL
01314 # undef QT_DLL
01315 #endif
01316
01317 #if !defined(Q_CORE_EXPORT)
01318 # if defined(QT_SHARED)
01319 # define Q_CORE_EXPORT Q_DECL_EXPORT
01320 # define Q_GUI_EXPORT Q_DECL_EXPORT
01321 # define Q_SQL_EXPORT Q_DECL_EXPORT
01322 # define Q_NETWORK_EXPORT Q_DECL_EXPORT
01323 # define Q_SVG_EXPORT Q_DECL_EXPORT
01324 # define Q_DECLARATIVE_EXPORT Q_DECL_EXPORT
01325 # define Q_OPENGL_EXPORT Q_DECL_EXPORT
01326 # define Q_MULTIMEDIA_EXPORT Q_DECL_EXPORT
01327 # define Q_OPENVG_EXPORT Q_DECL_EXPORT
01328 # define Q_XML_EXPORT Q_DECL_EXPORT
01329 # define Q_XMLPATTERNS_EXPORT Q_DECL_EXPORT
01330 # define Q_SCRIPT_EXPORT Q_DECL_EXPORT
01331 # define Q_SCRIPTTOOLS_EXPORT Q_DECL_EXPORT
01332 # define Q_COMPAT_EXPORT Q_DECL_EXPORT
01333 # define Q_DBUS_EXPORT Q_DECL_EXPORT
01334 # else
01335 # define Q_CORE_EXPORT
01336 # define Q_GUI_EXPORT
01337 # define Q_SQL_EXPORT
01338 # define Q_NETWORK_EXPORT
01339 # define Q_SVG_EXPORT
01340 # define Q_DECLARATIVE_EXPORT
01341 # define Q_OPENGL_EXPORT
01342 # define Q_MULTIMEDIA_EXPORT
01343 # define Q_XML_EXPORT
01344 # define Q_XMLPATTERNS_EXPORT
01345 # define Q_SCRIPT_EXPORT
01346 # define Q_SCRIPTTOOLS_EXPORT
01347 # define Q_COMPAT_EXPORT
01348 # define Q_DBUS_EXPORT
01349 # endif
01350 #endif
01351
01352
01353
01354 #if defined(Q_CC_MINGW)
01355 # if defined(QT_BUILD_CORE_LIB)
01356 # define Q_CORE_EXPORT_INLINE Q_CORE_EXPORT inline
01357 # else
01358 # define Q_CORE_EXPORT_INLINE inline
01359 # endif
01360 # if defined(QT_BUILD_GUI_LIB)
01361 # define Q_GUI_EXPORT_INLINE Q_GUI_EXPORT inline
01362 # else
01363 # define Q_GUI_EXPORT_INLINE inline
01364 # endif
01365 #elif defined(Q_CC_RVCT)
01366
01367
01368
01369 # define Q_CORE_EXPORT_INLINE inline
01370 # define Q_GUI_EXPORT_INLINE inline
01371 #else
01372 # define Q_CORE_EXPORT_INLINE Q_CORE_EXPORT inline
01373 # define Q_GUI_EXPORT_INLINE Q_GUI_EXPORT inline
01374 #endif
01375
01376
01377
01378
01379
01380
01381 #if defined(QT_BUILD_INTERNAL) && (defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN)) && defined(QT_MAKEDLL)
01382 # define Q_AUTOTEST_EXPORT Q_DECL_EXPORT
01383 #elif defined(QT_BUILD_INTERNAL) && (defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN)) && defined(QT_DLL)
01384 # define Q_AUTOTEST_EXPORT Q_DECL_IMPORT
01385 #elif defined(QT_BUILD_INTERNAL) && !(defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN)) && defined(QT_SHARED)
01386 # define Q_AUTOTEST_EXPORT Q_DECL_EXPORT
01387 #else
01388 # define Q_AUTOTEST_EXPORT
01389 #endif
01390
01391 inline void qt_noop() {}
01392
01393
01394
01395
01396
01397
01398
01399
01400
01401 #ifdef QT_BOOTSTRAPPED
01402 # define QT_NO_EXCEPTIONS
01403 #endif
01404 #if !defined(QT_NO_EXCEPTIONS) && defined(Q_CC_GNU) && !defined (__EXCEPTIONS) && !defined(Q_MOC_RUN)
01405 # define QT_NO_EXCEPTIONS
01406 #endif
01407
01408 #ifdef QT_NO_EXCEPTIONS
01409 # define QT_TRY if (true)
01410 # define QT_CATCH(A) else
01411 # define QT_THROW(A) qt_noop()
01412 # define QT_RETHROW qt_noop()
01413 #else
01414 # define QT_TRY try
01415 # define QT_CATCH(A) catch (A)
01416 # define QT_THROW(A) throw A
01417 # define QT_RETHROW throw
01418 #endif
01419
01420
01421
01422
01423
01424 class QString;
01425 class Q_CORE_EXPORT QSysInfo {
01426 public:
01427 enum Sizes {
01428 WordSize = (sizeof(void *)<<3)
01429 };
01430
01431 #if defined(QT_BUILD_QMAKE)
01432 enum Endian {
01433 BigEndian,
01434 LittleEndian
01435 };
01436
01437 static const int ByteOrder;
01438 #elif defined(Q_BYTE_ORDER)
01439 enum Endian {
01440 BigEndian,
01441 LittleEndian
01442
01443 # ifdef qdoc
01444 , ByteOrder = <platform-dependent>
01445 # elif Q_BYTE_ORDER == Q_BIG_ENDIAN
01446 , ByteOrder = BigEndian
01447 # elif Q_BYTE_ORDER == Q_LITTLE_ENDIAN
01448 , ByteOrder = LittleEndian
01449 # else
01450 # error "Undefined byte order"
01451 # endif
01452 };
01453 #else
01454 # error "Qt not configured correctly, please run configure"
01455 #endif
01456 #if defined(Q_WS_WIN) || defined(Q_OS_CYGWIN)
01457 enum WinVersion {
01458 WV_32s = 0x0001,
01459 WV_95 = 0x0002,
01460 WV_98 = 0x0003,
01461 WV_Me = 0x0004,
01462 WV_DOS_based= 0x000f,
01463
01464
01465 WV_NT = 0x0010,
01466 WV_2000 = 0x0020,
01467 WV_XP = 0x0030,
01468 WV_2003 = 0x0040,
01469 WV_VISTA = 0x0080,
01470 WV_WINDOWS7 = 0x0090,
01471 WV_NT_based = 0x00f0,
01472
01473
01474 WV_4_0 = WV_NT,
01475 WV_5_0 = WV_2000,
01476 WV_5_1 = WV_XP,
01477 WV_5_2 = WV_2003,
01478 WV_6_0 = WV_VISTA,
01479 WV_6_1 = WV_WINDOWS7,
01480
01481 WV_CE = 0x0100,
01482 WV_CENET = 0x0200,
01483 WV_CE_5 = 0x0300,
01484 WV_CE_6 = 0x0400,
01485 WV_CE_based = 0x0f00
01486 };
01487 static const WinVersion WindowsVersion;
01488 static WinVersion windowsVersion();
01489
01490 #endif
01491 #ifdef Q_OS_MAC
01492 enum MacVersion {
01493 MV_Unknown = 0x0000,
01494
01495
01496 MV_9 = 0x0001,
01497 MV_10_0 = 0x0002,
01498 MV_10_1 = 0x0003,
01499 MV_10_2 = 0x0004,
01500 MV_10_3 = 0x0005,
01501 MV_10_4 = 0x0006,
01502 MV_10_5 = 0x0007,
01503 MV_10_6 = 0x0008,
01504
01505
01506 MV_CHEETAH = MV_10_0,
01507 MV_PUMA = MV_10_1,
01508 MV_JAGUAR = MV_10_2,
01509 MV_PANTHER = MV_10_3,
01510 MV_TIGER = MV_10_4,
01511 MV_LEOPARD = MV_10_5,
01512 MV_SNOWLEOPARD = MV_10_6
01513 };
01514 static const MacVersion MacintoshVersion;
01515 #endif
01516 #ifdef Q_OS_SYMBIAN
01517 enum SymbianVersion {
01518 SV_Unknown = 1000000,
01519
01520 SV_9_2 = 10,
01521 SV_9_3 = 20,
01522 SV_9_4 = 30,
01523
01524 SV_SF_1 = SV_9_4,
01525 SV_SF_2 = 40,
01526 SV_SF_3 = 50,
01527 SV_SF_4 = 60
01528 };
01529 static SymbianVersion symbianVersion();
01530 enum S60Version {
01531 SV_S60_None = 0,
01532 SV_S60_Unknown = SV_Unknown,
01533 SV_S60_3_1 = SV_9_2,
01534 SV_S60_3_2 = SV_9_3,
01535 SV_S60_5_0 = SV_9_4,
01536
01537 SV_S60_5_1 = SV_SF_2,
01538 SV_S60_5_2 = SV_SF_3
01539 };
01540 static S60Version s60Version();
01541 #endif
01542 };
01543
01544 Q_CORE_EXPORT const char *qVersion();
01545 Q_CORE_EXPORT bool qSharedBuild();
01546
01547 #if defined(Q_OS_MAC)
01548 inline int qMacVersion() { return QSysInfo::MacintoshVersion; }
01549 #endif
01550
01551 #ifdef QT3_SUPPORT
01552 inline QT3_SUPPORT bool qSysInfo(int *wordSize, bool *bigEndian)
01553 {
01554 *wordSize = QSysInfo::WordSize;
01555 *bigEndian = (QSysInfo::ByteOrder == QSysInfo::BigEndian);
01556 return true;
01557 }
01558 #endif
01559
01560 #if defined(Q_WS_WIN) || defined(Q_OS_CYGWIN)
01561 #if defined(QT3_SUPPORT)
01562 inline QT3_SUPPORT bool qt_winUnicode() { return true; }
01563 inline QT3_SUPPORT int qWinVersion() { return QSysInfo::WindowsVersion; }
01564 #endif
01565
01566
01567 #define QT_WA(unicode, ansi) unicode
01568 #define QT_WA_INLINE(unicode, ansi) (unicode)
01569
01570 #endif
01571
01572 #ifndef Q_OUTOFLINE_TEMPLATE
01573 # define Q_OUTOFLINE_TEMPLATE
01574 #endif
01575 #ifndef Q_INLINE_TEMPLATE
01576 # define Q_INLINE_TEMPLATE inline
01577 #endif
01578
01579 #ifndef Q_TYPENAME
01580 # define Q_TYPENAME typename
01581 #endif
01582
01583
01584
01585
01586
01587 #if defined(Q_CC_INTEL) && !defined(Q_OS_WIN) || defined(Q_CC_RVCT)
01588 template <typename T>
01589 inline void qUnused(T &x) { (void)x; }
01590 # define Q_UNUSED(x) qUnused(x);
01591 #else
01592 # define Q_UNUSED(x) (void)x;
01593 #endif
01594
01595
01596
01597
01598
01599
01600
01601
01602
01603
01604 #if defined(Q_OS_SYMBIAN) && defined(NDEBUG) && !defined(QT_NO_DEBUG)
01605 # define QT_NO_DEBUG
01606 #endif
01607
01608 #if !defined(QT_NO_DEBUG) && !defined(QT_DEBUG)
01609 # define QT_DEBUG
01610 #endif
01611
01612 #ifndef qPrintable
01613 # define qPrintable(string) (string).toLocal8Bit().constData()
01614 #endif
01615
01616 Q_CORE_EXPORT void qDebug(const char *, ...)
01617 #if defined(Q_CC_GNU) && !defined(__INSURE__)
01618 __attribute__ ((format (printf, 1, 2)))
01619 #endif
01620 ;
01621
01622 Q_CORE_EXPORT void qWarning(const char *, ...)
01623 #if defined(Q_CC_GNU) && !defined(__INSURE__)
01624 __attribute__ ((format (printf, 1, 2)))
01625 #endif
01626 ;
01627
01628 class QString;
01629 Q_CORE_EXPORT QString qt_error_string(int errorCode = -1);
01630 Q_CORE_EXPORT void qCritical(const char *, ...)
01631 #if defined(Q_CC_GNU) && !defined(__INSURE__)
01632 __attribute__ ((format (printf, 1, 2)))
01633 #endif
01634 ;
01635 Q_CORE_EXPORT void qFatal(const char *, ...)
01636 #if defined(Q_CC_GNU) && !defined(__INSURE__)
01637 __attribute__ ((format (printf, 1, 2)))
01638 #endif
01639 ;
01640
01641 #ifdef QT3_SUPPORT
01642 Q_CORE_EXPORT QT3_SUPPORT void qSystemWarning(const char *msg, int code = -1);
01643 #endif
01644 Q_CORE_EXPORT void qErrnoWarning(int code, const char *msg, ...);
01645 Q_CORE_EXPORT void qErrnoWarning(const char *msg, ...);
01646
01647 #if (defined(QT_NO_DEBUG_OUTPUT) || defined(QT_NO_TEXTSTREAM)) && !defined(QT_NO_DEBUG_STREAM)
01648 #define QT_NO_DEBUG_STREAM
01649 #endif
01650
01651
01652
01653
01654
01655
01656 class QDebug;
01657 class QNoDebug;
01658 #ifndef QT_NO_DEBUG_STREAM
01659 Q_CORE_EXPORT_INLINE QDebug qDebug();
01660 Q_CORE_EXPORT_INLINE QDebug qWarning();
01661 Q_CORE_EXPORT_INLINE QDebug qCritical();
01662 #else
01663 inline QNoDebug qDebug();
01664 #endif
01665
01666 #define QT_NO_QDEBUG_MACRO while (false) qDebug
01667 #ifdef QT_NO_DEBUG_OUTPUT
01668 # define qDebug QT_NO_QDEBUG_MACRO
01669 #endif
01670 #define QT_NO_QWARNING_MACRO while (false) qWarning
01671 #ifdef QT_NO_WARNING_OUTPUT
01672 # define qWarning QT_NO_QWARNING_MACRO
01673 #endif
01674
01675
01676 Q_CORE_EXPORT void qt_assert(const char *assertion, const char *file, int line);
01677
01678 #if !defined(Q_ASSERT)
01679 # ifndef QT_NO_DEBUG
01680 # define Q_ASSERT(cond) ((!(cond)) ? qt_assert(#cond,__FILE__,__LINE__) : qt_noop())
01681 # else
01682 # define Q_ASSERT(cond) qt_noop()
01683 # endif
01684 #endif
01685
01686 #if defined(QT_NO_DEBUG) && !defined(QT_PAINT_DEBUG)
01687 #define QT_NO_PAINT_DEBUG
01688 #endif
01689
01690 Q_CORE_EXPORT void qt_assert_x(const char *where, const char *what, const char *file, int line);
01691
01692 #if !defined(Q_ASSERT_X)
01693 # ifndef QT_NO_DEBUG
01694 # define Q_ASSERT_X(cond, where, what) ((!(cond)) ? qt_assert_x(where, what,__FILE__,__LINE__) : qt_noop())
01695 # else
01696 # define Q_ASSERT_X(cond, where, what) qt_noop()
01697 # endif
01698 #endif
01699
01700 Q_CORE_EXPORT void qt_check_pointer(const char *, int);
01701 Q_CORE_EXPORT void qBadAlloc();
01702
01703 #ifdef QT_NO_EXCEPTIONS
01704 # if defined(QT_NO_DEBUG)
01705 # define Q_CHECK_PTR(p) qt_noop();
01706 # else
01707 # define Q_CHECK_PTR(p) do {if(!(p))qt_check_pointer(__FILE__,__LINE__);} while (0)
01708 # endif
01709 #else
01710 # define Q_CHECK_PTR(p) do { if (!(p)) qBadAlloc(); } while (0)
01711 #endif
01712
01713 template <typename T>
01714 inline T *q_check_ptr(T *p) { Q_CHECK_PTR(p); return p; }
01715
01716 #if (defined(Q_CC_GNU) && !defined(Q_OS_SOLARIS)) || defined(Q_CC_HPACC) || defined(Q_CC_DIAB)
01717 # define Q_FUNC_INFO __PRETTY_FUNCTION__
01718 #elif defined(_MSC_VER)
01719
01720 # if _MSC_VER <= 1300
01721 # define Q_FUNC_INFO __FILE__ "(line number unavailable)"
01722 # else
01723 # define Q_FUNC_INFO __FUNCSIG__
01724 # endif
01725 #else
01726 # if defined(Q_OS_SOLARIS) || defined(Q_CC_XLC) || defined(Q_OS_SYMBIAN)
01727 # define Q_FUNC_INFO __FILE__ "(line number unavailable)"
01728 # else
01729
01730
01731 # define QT_STRINGIFY2(x) #x
01732 # define QT_STRINGIFY(x) QT_STRINGIFY2(x)
01733 # define Q_FUNC_INFO __FILE__ ":" QT_STRINGIFY(__LINE__)
01734 # endif
01735
01736
01737 # if !defined(Q_CC_MIPS) && !defined(Q_CC_RVCT) && !defined(Q_CC_NOKIAX86)
01738 # undef QT_STRINGIFY2
01739 # undef QT_STRINGIFY
01740 # endif
01741 #endif
01742
01743 enum QtMsgType { QtDebugMsg, QtWarningMsg, QtCriticalMsg, QtFatalMsg, QtSystemMsg = QtCriticalMsg };
01744
01745 Q_CORE_EXPORT void qt_message_output(QtMsgType, const char *buf);
01746
01747 typedef void (*QtMsgHandler)(QtMsgType, const char *);
01748 Q_CORE_EXPORT QtMsgHandler qInstallMsgHandler(QtMsgHandler);
01749
01750 #ifdef QT3_SUPPORT
01751 inline QT3_SUPPORT void qSuppressObsoleteWarnings(bool = true) {}
01752 inline QT3_SUPPORT void qObsolete(const char *, const char * = 0, const char * = 0) {}
01753 #endif
01754
01755 #if defined(QT_NO_THREAD)
01756
01757 template <typename T>
01758 class QGlobalStatic
01759 {
01760 public:
01761 T *pointer;
01762 inline QGlobalStatic(T *p) : pointer(p) { }
01763 inline ~QGlobalStatic() { pointer = 0; }
01764 };
01765
01766 #define Q_GLOBAL_STATIC(TYPE, NAME) \
01767 static TYPE *NAME() \
01768 { \
01769 static TYPE this_##NAME; \
01770 static QGlobalStatic<TYPE > global_##NAME(&this_##NAME); \
01771 return global_##NAME.pointer; \
01772 }
01773
01774 #define Q_GLOBAL_STATIC_WITH_ARGS(TYPE, NAME, ARGS) \
01775 static TYPE *NAME() \
01776 { \
01777 static TYPE this_##NAME ARGS; \
01778 static QGlobalStatic<TYPE > global_##NAME(&this_##NAME); \
01779 return global_##NAME.pointer; \
01780 }
01781
01782 #define Q_GLOBAL_STATIC_WITH_INITIALIZER(TYPE, NAME, INITIALIZER) \
01783 static TYPE *NAME() \
01784 { \
01785 static TYPE this_##NAME; \
01786 static QGlobalStatic<TYPE > global_##NAME(0); \
01787 if (!global_##NAME.pointer) { \
01788 TYPE *x = global_##NAME.pointer = &this_##NAME; \
01789 INITIALIZER; \
01790 } \
01791 return global_##NAME.pointer; \
01792 }
01793
01794 #else
01795
01796
01797 template <typename T> class QBasicAtomicPointer;
01798
01799
01800 template <typename T>
01801 class QGlobalStatic
01802 {
01803 public:
01804 QBasicAtomicPointer<T> pointer;
01805 bool destroyed;
01806 };
01807
01808
01809 template <typename T>
01810 class QGlobalStaticDeleter
01811 {
01812 public:
01813 QGlobalStatic<T> &globalStatic;
01814 QGlobalStaticDeleter(QGlobalStatic<T> &_globalStatic)
01815 : globalStatic(_globalStatic)
01816 { }
01817
01818 inline ~QGlobalStaticDeleter()
01819 {
01820 delete globalStatic.pointer;
01821 globalStatic.pointer = 0;
01822 globalStatic.destroyed = true;
01823 }
01824 };
01825
01826 #define Q_GLOBAL_STATIC_INIT(TYPE, NAME) \
01827 static QGlobalStatic<TYPE > this_##NAME = { Q_BASIC_ATOMIC_INITIALIZER(0), false }
01828
01829 #define Q_GLOBAL_STATIC(TYPE, NAME) \
01830 Q_GLOBAL_STATIC_INIT(TYPE, NAME); \
01831 static TYPE *NAME() \
01832 { \
01833 if (!this_##NAME.pointer && !this_##NAME.destroyed) { \
01834 TYPE *x = new TYPE; \
01835 if (!this_##NAME.pointer.testAndSetOrdered(0, x)) \
01836 delete x; \
01837 else \
01838 static QGlobalStaticDeleter<TYPE > cleanup(this_##NAME); \
01839 } \
01840 return this_##NAME.pointer; \
01841 }
01842
01843 #define Q_GLOBAL_STATIC_WITH_ARGS(TYPE, NAME, ARGS) \
01844 Q_GLOBAL_STATIC_INIT(TYPE, NAME); \
01845 static TYPE *NAME() \
01846 { \
01847 if (!this_##NAME.pointer && !this_##NAME.destroyed) { \
01848 TYPE *x = new TYPE ARGS; \
01849 if (!this_##NAME.pointer.testAndSetOrdered(0, x)) \
01850 delete x; \
01851 else \
01852 static QGlobalStaticDeleter<TYPE > cleanup(this_##NAME); \
01853 } \
01854 return this_##NAME.pointer; \
01855 }
01856
01857 #define Q_GLOBAL_STATIC_WITH_INITIALIZER(TYPE, NAME, INITIALIZER) \
01858 Q_GLOBAL_STATIC_INIT(TYPE, NAME); \
01859 static TYPE *NAME() \
01860 { \
01861 if (!this_##NAME.pointer && !this_##NAME.destroyed) { \
01862 QScopedPointer<TYPE > x(new TYPE); \
01863 INITIALIZER; \
01864 if (this_##NAME.pointer.testAndSetOrdered(0, x.data())) { \
01865 static QGlobalStaticDeleter<TYPE > cleanup(this_##NAME); \
01866 x.take(); \
01867 } \
01868 } \
01869 return this_##NAME.pointer; \
01870 }
01871
01872 #endif
01873
01874 class QBool
01875 {
01876 bool b;
01877
01878 public:
01879 inline explicit QBool(bool B) : b(B) {}
01880 inline operator const void *() const
01881 { return b ? static_cast<const void *>(this) : static_cast<const void *>(0); }
01882 };
01883
01884 inline bool operator==(QBool b1, bool b2) { return !b1 == !b2; }
01885 inline bool operator==(bool b1, QBool b2) { return !b1 == !b2; }
01886 inline bool operator==(QBool b1, QBool b2) { return !b1 == !b2; }
01887 inline bool operator!=(QBool b1, bool b2) { return !b1 != !b2; }
01888 inline bool operator!=(bool b1, QBool b2) { return !b1 != !b2; }
01889 inline bool operator!=(QBool b1, QBool b2) { return !b1 != !b2; }
01890
01891 static inline bool qFuzzyCompare(double p1, double p2)
01892 {
01893 return (qAbs(p1 - p2) <= 0.000000000001 * qMin(qAbs(p1), qAbs(p2)));
01894 }
01895
01896 static inline bool qFuzzyCompare(float p1, float p2)
01897 {
01898 return (qAbs(p1 - p2) <= 0.00001f * qMin(qAbs(p1), qAbs(p2)));
01899 }
01900
01904 static inline bool qFuzzyIsNull(double d)
01905 {
01906 return qAbs(d) <= 0.000000000001;
01907 }
01908
01912 static inline bool qFuzzyIsNull(float f)
01913 {
01914 return qAbs(f) <= 0.00001f;
01915 }
01916
01917
01918
01919
01920
01921
01922 static inline bool qIsNull(double d)
01923 {
01924 union U {
01925 double d;
01926 quint64 u;
01927 };
01928 U val;
01929 val.d = d;
01930 return val.u == quint64(0);
01931 }
01932
01933
01934
01935
01936
01937
01938 static inline bool qIsNull(float f)
01939 {
01940 union U {
01941 float f;
01942 quint32 u;
01943 };
01944 U val;
01945 val.f = f;
01946 return val.u == 0u;
01947 }
01948
01949
01950
01951
01952
01953
01954
01955
01956
01957
01958 #ifdef Q_FULL_TEMPLATE_INSTANTIATION
01959 # define Q_DUMMY_COMPARISON_OPERATOR(C) \
01960 bool operator==(const C&) const { \
01961 qWarning(#C"::operator==(const "#C"&) was called"); \
01962 return false; \
01963 }
01964 #else
01965 # define Q_DUMMY_COMPARISON_OPERATOR(C)
01966 #endif
01967
01968
01969
01970
01971
01972
01973
01974 #ifndef QT_NO_PARTIAL_TEMPLATE_SPECIALIZATION
01975
01976
01977
01978
01979
01980 template <typename T> inline bool qIsDetached(T &) { return true; }
01981
01982 template <typename T>
01983 class QTypeInfo
01984 {
01985 public:
01986 enum {
01987 isPointer = false,
01988 isComplex = true,
01989 isStatic = true,
01990 isLarge = (sizeof(T)>sizeof(void*)),
01991 isDummy = false
01992 };
01993 };
01994
01995 template <typename T>
01996 class QTypeInfo<T*>
01997 {
01998 public:
01999 enum {
02000 isPointer = true,
02001 isComplex = false,
02002 isStatic = false,
02003 isLarge = false,
02004 isDummy = false
02005 };
02006 };
02007
02008 #else
02009
02010 template <typename T> char QTypeInfoHelper(T*(*)());
02011 void* QTypeInfoHelper(...);
02012
02013 template <typename T> inline bool qIsDetached(T &) { return true; }
02014
02015 template <typename T>
02016 class QTypeInfo
02017 {
02018 public:
02019 enum {
02020 isPointer = (1 == sizeof(QTypeInfoHelper((T(*)())0))),
02021 isComplex = !isPointer,
02022 isStatic = !isPointer,
02023 isLarge = (sizeof(T)>sizeof(void*)),
02024 isDummy = false
02025 };
02026 };
02027
02028 #endif
02029
02030
02031
02032
02033
02034
02035
02036
02037
02038 enum {
02039 Q_COMPLEX_TYPE = 0,
02040 Q_PRIMITIVE_TYPE = 0x1,
02041 Q_STATIC_TYPE = 0,
02042 Q_MOVABLE_TYPE = 0x2,
02043 Q_DUMMY_TYPE = 0x4
02044 };
02045
02046 #define Q_DECLARE_TYPEINFO(TYPE, FLAGS) \
02047 template <> \
02048 class QTypeInfo<TYPE > \
02049 { \
02050 public: \
02051 enum { \
02052 isComplex = (((FLAGS) & Q_PRIMITIVE_TYPE) == 0), \
02053 isStatic = (((FLAGS) & (Q_MOVABLE_TYPE | Q_PRIMITIVE_TYPE)) == 0), \
02054 isLarge = (sizeof(TYPE)>sizeof(void*)), \
02055 isPointer = false, \
02056 isDummy = (((FLAGS) & Q_DUMMY_TYPE) != 0) \
02057 }; \
02058 static inline const char *name() { return #TYPE; } \
02059 }
02060
02061 template <typename T>
02062 inline void qSwap(T &value1, T &value2)
02063 {
02064 const T t = value1;
02065 value1 = value2;
02066 value2 = t;
02067 }
02068
02069
02070
02071
02072
02073
02074
02075
02076
02077
02078 #define Q_DECLARE_SHARED(TYPE) \
02079 template <> inline bool qIsDetached<TYPE>(TYPE &t) { return t.isDetached(); } \
02080 template <> inline void qSwap<TYPE>(TYPE &value1, TYPE &value2) \
02081 { \
02082 qSwap(value1.data_ptr(), value2.data_ptr()); \
02083 }
02084
02085
02086
02087
02088 Q_DECLARE_TYPEINFO(bool, Q_PRIMITIVE_TYPE);
02089 Q_DECLARE_TYPEINFO(char, Q_PRIMITIVE_TYPE);
02090 Q_DECLARE_TYPEINFO(signed char, Q_PRIMITIVE_TYPE);
02091 Q_DECLARE_TYPEINFO(uchar, Q_PRIMITIVE_TYPE);
02092 Q_DECLARE_TYPEINFO(short, Q_PRIMITIVE_TYPE);
02093 Q_DECLARE_TYPEINFO(ushort, Q_PRIMITIVE_TYPE);
02094 Q_DECLARE_TYPEINFO(int, Q_PRIMITIVE_TYPE);
02095 Q_DECLARE_TYPEINFO(uint, Q_PRIMITIVE_TYPE);
02096 Q_DECLARE_TYPEINFO(long, Q_PRIMITIVE_TYPE);
02097 Q_DECLARE_TYPEINFO(ulong, Q_PRIMITIVE_TYPE);
02098 Q_DECLARE_TYPEINFO(qint64, Q_PRIMITIVE_TYPE);
02099 Q_DECLARE_TYPEINFO(quint64, Q_PRIMITIVE_TYPE);
02100 Q_DECLARE_TYPEINFO(float, Q_PRIMITIVE_TYPE);
02101 Q_DECLARE_TYPEINFO(double, Q_PRIMITIVE_TYPE);
02102 #ifndef Q_OS_DARWIN
02103 Q_DECLARE_TYPEINFO(long double, Q_PRIMITIVE_TYPE);
02104 #endif
02105
02106
02107
02108
02109
02110 Q_CORE_EXPORT void *qMalloc(size_t size);
02111 Q_CORE_EXPORT void qFree(void *ptr);
02112 Q_CORE_EXPORT void *qRealloc(void *ptr, size_t size);
02113 Q_CORE_EXPORT void *qMallocAligned(size_t size, size_t alignment);
02114 Q_CORE_EXPORT void *qReallocAligned(void *ptr, size_t size, size_t oldsize, size_t alignment);
02115 Q_CORE_EXPORT void qFreeAligned(void *ptr);
02116 Q_CORE_EXPORT void *qMemCopy(void *dest, const void *src, size_t n);
02117 Q_CORE_EXPORT void *qMemSet(void *dest, int c, size_t n);
02118
02119
02120
02121
02122
02123
02124
02125 #if !defined(QT_CC_WARNINGS)
02126 # define QT_NO_WARNINGS
02127 #endif
02128 #if defined(QT_NO_WARNINGS)
02129 # if defined(Q_CC_MSVC)
02130 # pragma warning(disable: 4251)
02131 # pragma warning(disable: 4244)
02132 # pragma warning(disable: 4275)
02133 # pragma warning(disable: 4514)
02134 # pragma warning(disable: 4800)
02135 # pragma warning(disable: 4097)
02136 # pragma warning(disable: 4706)
02137 # pragma warning(disable: 4786)
02138 # pragma warning(disable: 4660)
02139 # pragma warning(disable: 4355)
02140 # pragma warning(disable: 4231)
02141 # pragma warning(disable: 4710)
02142 # pragma warning(disable: 4530)
02143 # if _MSC_VER < 1300
02144 # pragma warning(disable: 4284)
02145
02146 # endif
02147 # elif defined(Q_CC_BOR)
02148 # pragma option -w-inl
02149 # pragma option -w-aus
02150 # pragma warn -inl
02151 # pragma warn -pia
02152 # pragma warn -ccc
02153 # pragma warn -rch
02154 # pragma warn -sig
02155 # endif
02156 #endif
02157
02158 class Q_CORE_EXPORT QFlag
02159 {
02160 int i;
02161 public:
02162 inline QFlag(int i);
02163 inline operator int() const { return i; }
02164 };
02165
02166 inline QFlag::QFlag(int ai) : i(ai) {}
02167
02168 class Q_CORE_EXPORT QIncompatibleFlag
02169 {
02170 int i;
02171 public:
02172 inline explicit QIncompatibleFlag(int i);
02173 inline operator int() const { return i; }
02174 };
02175
02176 inline QIncompatibleFlag::QIncompatibleFlag(int ai) : i(ai) {}
02177
02178
02179 #ifndef Q_NO_TYPESAFE_FLAGS
02180
02181 template<typename Enum>
02182 class QFlags
02183 {
02184 typedef void **Zero;
02185 int i;
02186 public:
02187 typedef Enum enum_type;
02188 inline QFlags(const QFlags &f) : i(f.i) {}
02189 inline QFlags(Enum f) : i(f) {}
02190 inline QFlags(Zero = 0) : i(0) {}
02191 inline QFlags(QFlag f) : i(f) {}
02192
02193 inline QFlags &operator=(const QFlags &f) { i = f.i; return *this; }
02194 inline QFlags &operator&=(int mask) { i &= mask; return *this; }
02195 inline QFlags &operator&=(uint mask) { i &= mask; return *this; }
02196 inline QFlags &operator|=(QFlags f) { i |= f.i; return *this; }
02197 inline QFlags &operator|=(Enum f) { i |= f; return *this; }
02198 inline QFlags &operator^=(QFlags f) { i ^= f.i; return *this; }
02199 inline QFlags &operator^=(Enum f) { i ^= f; return *this; }
02200
02201 inline operator int() const { return i; }
02202
02203 inline QFlags operator|(QFlags f) const { QFlags g; g.i = i | f.i; return g; }
02204 inline QFlags operator|(Enum f) const { QFlags g; g.i = i | f; return g; }
02205 inline QFlags operator^(QFlags f) const { QFlags g; g.i = i ^ f.i; return g; }
02206 inline QFlags operator^(Enum f) const { QFlags g; g.i = i ^ f; return g; }
02207 inline QFlags operator&(int mask) const { QFlags g; g.i = i & mask; return g; }
02208 inline QFlags operator&(uint mask) const { QFlags g; g.i = i & mask; return g; }
02209 inline QFlags operator&(Enum f) const { QFlags g; g.i = i & f; return g; }
02210 inline QFlags operator~() const { QFlags g; g.i = ~i; return g; }
02211
02212 inline bool operator!() const { return !i; }
02213
02214 inline bool testFlag(Enum f) const { return (i & f) == f && (f != 0 || i == int(f) ); }
02215 };
02216
02217 #define Q_DECLARE_FLAGS(Flags, Enum)\
02218 typedef QFlags<Enum> Flags;
02219
02220 #if defined Q_CC_MSVC && _MSC_VER < 1300
02221 # define Q_DECLARE_INCOMPATIBLE_FLAGS(Flags)
02222 #else
02223 # define Q_DECLARE_INCOMPATIBLE_FLAGS(Flags) \
02224 inline QIncompatibleFlag operator|(Flags::enum_type f1, int f2) \
02225 { return QIncompatibleFlag(int(f1) | f2); }
02226 #endif
02227
02228 #define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags) \
02229 inline QFlags<Flags::enum_type> operator|(Flags::enum_type f1, Flags::enum_type f2) \
02230 { return QFlags<Flags::enum_type>(f1) | f2; } \
02231 inline QFlags<Flags::enum_type> operator|(Flags::enum_type f1, QFlags<Flags::enum_type> f2) \
02232 { return f2 | f1; } Q_DECLARE_INCOMPATIBLE_FLAGS(Flags)
02233
02234
02235 #else
02236
02237 #define Q_DECLARE_FLAGS(Flags, Enum)\
02238 typedef uint Flags;
02239 #define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
02240
02241 #endif
02242
02243 #if defined(Q_CC_GNU) && !defined(Q_CC_INTEL) && !defined(Q_CC_RVCT)
02244
02245 template <typename T>
02246 class QForeachContainer {
02247 public:
02248 inline QForeachContainer(const T& t) : c(t), brk(0), i(c.begin()), e(c.end()) { }
02249 const T c;
02250 int brk;
02251 typename T::const_iterator i, e;
02252 };
02253
02254 #define Q_FOREACH(variable, container) \
02255 for (QForeachContainer<__typeof__(container)> _container_(container); \
02256 !_container_.brk && _container_.i != _container_.e; \
02257 __extension__ ({ ++_container_.brk; ++_container_.i; })) \
02258 for (variable = *_container_.i;; __extension__ ({--_container_.brk; break;}))
02259
02260 #else
02261
02262 struct QForeachContainerBase {};
02263
02264 template <typename T>
02265 class QForeachContainer : public QForeachContainerBase {
02266 public:
02267 inline QForeachContainer(const T& t): c(t), brk(0), i(c.begin()), e(c.end()){};
02268 const T c;
02269 mutable int brk;
02270 mutable typename T::const_iterator i, e;
02271 inline bool condition() const { return (!brk++ && i != e); }
02272 };
02273
02274 template <typename T> inline T *qForeachPointer(const T &) { return 0; }
02275
02276 template <typename T> inline QForeachContainer<T> qForeachContainerNew(const T& t)
02277 { return QForeachContainer<T>(t); }
02278
02279 template <typename T>
02280 inline const QForeachContainer<T> *qForeachContainer(const QForeachContainerBase *base, const T *)
02281 { return static_cast<const QForeachContainer<T> *>(base); }
02282
02283 #if (defined(Q_CC_MSVC) && !defined(Q_CC_MSVC_NET) && !defined(Q_CC_INTEL)) || defined(Q_CC_MIPS)
02284
02285
02286
02287 # define Q_FOREACH(variable,container) \
02288 if(0){}else \
02289 for (const QForeachContainerBase &_container_ = qForeachContainerNew(container); \
02290 qForeachContainer(&_container_, true ? 0 : qForeachPointer(container))->condition(); \
02291 ++qForeachContainer(&_container_, true ? 0 : qForeachPointer(container))->i) \
02292 for (variable = *qForeachContainer(&_container_, true ? 0 : qForeachPointer(container))->i; \
02293 qForeachContainer(&_container_, true ? 0 : qForeachPointer(container))->brk; \
02294 --qForeachContainer(&_container_, true ? 0 : qForeachPointer(container))->brk)
02295
02296 #elif defined(Q_CC_DIAB)
02297
02298 # define Q_FOREACH(variable,container) \
02299 if(0){}else \
02300 for (const QForeachContainerBase &_container_ = qForeachContainerNew(container); \
02301 qForeachContainer(&_container_, (__typeof__(container) *) 0)->condition(); \
02302 ++qForeachContainer(&_container_, (__typeof__(container) *) 0)->i) \
02303 for (variable = *qForeachContainer(&_container_, (__typeof__(container) *) 0)->i; \
02304 qForeachContainer(&_container_, (__typeof__(container) *) 0)->brk; \
02305 --qForeachContainer(&_container_, (__typeof__(container) *) 0)->brk)
02306
02307 #else
02308 # define Q_FOREACH(variable, container) \
02309 for (const QForeachContainerBase &_container_ = qForeachContainerNew(container); \
02310 qForeachContainer(&_container_, true ? 0 : qForeachPointer(container))->condition(); \
02311 ++qForeachContainer(&_container_, true ? 0 : qForeachPointer(container))->i) \
02312 for (variable = *qForeachContainer(&_container_, true ? 0 : qForeachPointer(container))->i; \
02313 qForeachContainer(&_container_, true ? 0 : qForeachPointer(container))->brk; \
02314 --qForeachContainer(&_container_, true ? 0 : qForeachPointer(container))->brk)
02315 #endif // MSVC6 || MIPSpro
02316
02317 #endif
02318
02319 #define Q_FOREVER for(;;)
02320 #ifndef QT_NO_KEYWORDS
02321 # ifndef foreach
02322 # define foreach Q_FOREACH
02323 # endif
02324 # ifndef forever
02325 # define forever Q_FOREVER
02326 # endif
02327 #endif
02328
02329 #if 0
02330
02331 #if defined(QT_NO_DEBUG) && defined(Q_CC_GNU)
02332 # define qMemCopy __builtin_memcpy
02333 # define qMemSet __builtin_memset
02334 #endif
02335 #endif
02336
02337 template <typename T> static inline T *qGetPtrHelper(T *ptr) { return ptr; }
02338 template <typename Wrapper> static inline typename Wrapper::pointer qGetPtrHelper(const Wrapper &p) { return p.data(); }
02339
02340 #define Q_DECLARE_PRIVATE(Class) \
02341 inline Class##Private* d_func() { return reinterpret_cast<Class##Private *>(qGetPtrHelper(d_ptr)); } \
02342 inline const Class##Private* d_func() const { return reinterpret_cast<const Class##Private *>(qGetPtrHelper(d_ptr)); } \
02343 friend class Class##Private;
02344
02345 #define Q_DECLARE_PRIVATE_D(Dptr, Class) \
02346 inline Class##Private* d_func() { return reinterpret_cast<Class##Private *>(Dptr); } \
02347 inline const Class##Private* d_func() const { return reinterpret_cast<const Class##Private *>(Dptr); } \
02348 friend class Class##Private;
02349
02350 #define Q_DECLARE_PUBLIC(Class) \
02351 inline Class* q_func() { return static_cast<Class *>(q_ptr); } \
02352 inline const Class* q_func() const { return static_cast<const Class *>(q_ptr); } \
02353 friend class Class;
02354
02355 #define Q_D(Class) Class##Private * const d = d_func()
02356 #define Q_Q(Class) Class * const q = q_func()
02357
02358 #define QT_TR_NOOP(x) (x)
02359 #define QT_TR_NOOP_UTF8(x) (x)
02360 #define QT_TRANSLATE_NOOP(scope, x) (x)
02361 #define QT_TRANSLATE_NOOP_UTF8(scope, x) (x)
02362 #define QT_TRANSLATE_NOOP3(scope, x, comment) {x, comment}
02363 #define QT_TRANSLATE_NOOP3_UTF8(scope, x, comment) {x, comment}
02364
02365 #ifndef QT_NO_TRANSLATION // ### This should enclose the NOOPs above
02366
02367
02368
02369
02370 Q_CORE_EXPORT QString qtTrId(const char *id, int n = -1);
02371
02372 #define QT_TRID_NOOP(id) id
02373
02374 #endif // QT_NO_TRANSLATION
02375
02376 #define QDOC_PROPERTY(text)
02377
02378
02379
02380
02381
02382
02383 #ifdef QT_NO_DYNAMIC_CAST
02384 # define dynamic_cast QT_PREPEND_NAMESPACE(qt_dynamic_cast_check)
02385
02386 template<typename T, typename X>
02387 T qt_dynamic_cast_check(X, T* = 0)
02388 { return T::dynamic_cast_will_always_fail_because_rtti_is_disabled; }
02389 #endif
02390
02391
02392
02393
02394
02395
02396 #define Q_DISABLE_COPY(Class) \
02397 Class(const Class &); \
02398 Class &operator=(const Class &);
02399
02400 class QByteArray;
02401 Q_CORE_EXPORT QByteArray qgetenv(const char *varName);
02402 Q_CORE_EXPORT bool qputenv(const char *varName, const QByteArray& value);
02403
02404 inline int qIntCast(double f) { return int(f); }
02405 inline int qIntCast(float f) { return int(f); }
02406
02407
02408
02409
02410 Q_CORE_EXPORT void qsrand(uint seed);
02411 Q_CORE_EXPORT int qrand();
02412
02413
02414
02415
02416 #ifdef QT3_SUPPORT
02417 #ifndef QT_PRODUCT_LICENSEE
02418 # define QT_PRODUCT_LICENSEE QLibraryInfo::licensee()
02419 #endif
02420 #ifndef QT_PRODUCT_LICENSE
02421 # define QT_PRODUCT_LICENSE QLibraryInfo::licensedProducts()
02422 #endif
02423 QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPath();
02424 QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathDocs();
02425 QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathHeaders();
02426 QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathLibs();
02427 QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathBins();
02428 QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathPlugins();
02429 QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathData();
02430 QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathTranslations();
02431 QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathSysconf();
02432 #endif
02433
02434 #if defined(Q_OS_SYMBIAN)
02435
02436 #ifdef SYMBIAN_BUILD_GCE
02437 #define Q_SYMBIAN_SUPPORTS_SURFACES
02438
02439 #define Q_SYMBIAN_FIXED_POINTER_CURSORS
02440 #define Q_SYMBIAN_HAS_EXTENDED_BITMAP_TYPE
02441 #define Q_SYMBIAN_WINDOW_SIZE_CACHE
02442 #define QT_SYMBIAN_SUPPORTS_ADVANCED_POINTER
02443
02444
02445 #ifdef SYMBIAN_GRAPHICS_EGL_SGIMAGELITE
02446 # define QT_SYMBIAN_SUPPORTS_SGIMAGE
02447 #endif
02448
02449 #ifdef SYMBIAN_GRAPHICS_WSERV_QT_EFFECTS
02450 # define Q_SYMBIAN_SEMITRANSPARENT_BG_SURFACE
02451 #endif
02452 #endif
02453
02454
02455
02456 #define Q_NO_DATA_RELOCATION
02457
02458 QT_END_NAMESPACE
02459
02460 #ifdef __cplusplus
02461 namespace std { class exception; }
02462 #endif
02463 QT_BEGIN_NAMESPACE
02464 Q_CORE_EXPORT void qt_symbian_throwIfError(int error);
02465 Q_CORE_EXPORT void qt_symbian_exception2LeaveL(const std::exception& ex);
02466 Q_CORE_EXPORT int qt_symbian_exception2Error(const std::exception& ex);
02467
02468 #define QT_TRAP_THROWING(_f) \
02469 { \
02470 TInt ____error; \
02471 TRAP(____error, _f); \
02472 qt_symbian_throwIfError(____error); \
02473 }
02474
02475 #define QT_TRYCATCH_ERROR(_err, _f) \
02476 { \
02477 _err = KErrNone; \
02478 try { \
02479 _f; \
02480 } catch (const std::exception &____ex) { \
02481 _err = qt_symbian_exception2Error(____ex); \
02482 } \
02483 }
02484
02485 #define QT_TRYCATCH_LEAVING(_f) \
02486 { \
02487 TInt ____err; \
02488 QT_TRYCATCH_ERROR(____err, _f) \
02489 User::LeaveIfError(____err); \
02490 }
02491 #endif
02492
02493
02494
02495
02496
02497
02498
02499
02500 #define QT_MODULE_CORE 0x00001
02501 #define QT_MODULE_GUI 0x00002
02502 #define QT_MODULE_NETWORK 0x00004
02503 #define QT_MODULE_OPENGL 0x00008
02504 #define QT_MODULE_SQL 0x00010
02505 #define QT_MODULE_XML 0x00020
02506 #define QT_MODULE_QT3SUPPORTLIGHT 0x00040
02507 #define QT_MODULE_QT3SUPPORT 0x00080
02508 #define QT_MODULE_SVG 0x00100
02509 #define QT_MODULE_ACTIVEQT 0x00200
02510 #define QT_MODULE_GRAPHICSVIEW 0x00400
02511 #define QT_MODULE_SCRIPT 0x00800
02512 #define QT_MODULE_XMLPATTERNS 0x01000
02513 #define QT_MODULE_HELP 0x02000
02514 #define QT_MODULE_TEST 0x04000
02515 #define QT_MODULE_DBUS 0x08000
02516 #define QT_MODULE_SCRIPTTOOLS 0x10000
02517 #define QT_MODULE_OPENVG 0x20000
02518 #define QT_MODULE_MULTIMEDIA 0x40000
02519 #define QT_MODULE_DECLARATIVE 0x80000
02520
02521
02522 #define QT_EDITION_CONSOLE (QT_MODULE_CORE \
02523 | QT_MODULE_NETWORK \
02524 | QT_MODULE_SQL \
02525 | QT_MODULE_SCRIPT \
02526 | QT_MODULE_MULTIMEDIA \
02527 | QT_MODULE_XML \
02528 | QT_MODULE_XMLPATTERNS \
02529 | QT_MODULE_TEST \
02530 | QT_MODULE_DBUS)
02531 #define QT_EDITION_DESKTOPLIGHT (QT_MODULE_CORE \
02532 | QT_MODULE_GUI \
02533 | QT_MODULE_QT3SUPPORTLIGHT \
02534 | QT_MODULE_TEST \
02535 | QT_MODULE_DBUS)
02536 #define QT_EDITION_OPENSOURCE (QT_MODULE_CORE \
02537 | QT_MODULE_GUI \
02538 | QT_MODULE_NETWORK \
02539 | QT_MODULE_OPENGL \
02540 | QT_MODULE_OPENVG \
02541 | QT_MODULE_SQL \
02542 | QT_MODULE_MULTIMEDIA \
02543 | QT_MODULE_XML \
02544 | QT_MODULE_XMLPATTERNS \
02545 | QT_MODULE_SCRIPT \
02546 | QT_MODULE_SCRIPTTOOLS \
02547 | QT_MODULE_QT3SUPPORTLIGHT \
02548 | QT_MODULE_QT3SUPPORT \
02549 | QT_MODULE_SVG \
02550 | QT_MODULE_DECLARATIVE \
02551 | QT_MODULE_GRAPHICSVIEW \
02552 | QT_MODULE_HELP \
02553 | QT_MODULE_TEST \
02554 | QT_MODULE_DBUS \
02555 | QT_MODULE_ACTIVEQT)
02556 #define QT_EDITION_DESKTOP (QT_EDITION_OPENSOURCE)
02557 #define QT_EDITION_UNIVERSAL QT_EDITION_DESKTOP
02558 #define QT_EDITION_ACADEMIC QT_EDITION_DESKTOP
02559 #define QT_EDITION_EDUCATIONAL QT_EDITION_DESKTOP
02560 #define QT_EDITION_EVALUATION QT_EDITION_DESKTOP
02561
02562
02563 #ifndef QT_EDITION
02564 # ifdef QT_BUILD_QMAKE
02565 # define QT_EDITION QT_EDITION_DESKTOP
02566 # else
02567 # error "Qt not configured correctly, please run configure"
02568 # endif
02569 #endif
02570
02571 #define QT_LICENSED_MODULE(x) \
02572 enum QtValidLicenseFor##x##Module { Licensed##x = true };
02573
02574
02575
02576
02577 #if (QT_EDITION & QT_MODULE_CORE)
02578 QT_LICENSED_MODULE(Core)
02579 #endif
02580 #if (QT_EDITION & QT_MODULE_GUI)
02581 QT_LICENSED_MODULE(Gui)
02582 #endif
02583 #if (QT_EDITION & QT_MODULE_NETWORK)
02584 QT_LICENSED_MODULE(Network)
02585 #endif
02586 #if (QT_EDITION & QT_MODULE_OPENGL)
02587 QT_LICENSED_MODULE(OpenGL)
02588 #endif
02589 #if (QT_EDITION & QT_MODULE_OPENVG)
02590 QT_LICENSED_MODULE(OpenVG)
02591 #endif
02592 #if (QT_EDITION & QT_MODULE_SQL)
02593 QT_LICENSED_MODULE(Sql)
02594 #endif
02595 #if (QT_EDITION & QT_MODULE_MULTIMEDIA)
02596 QT_LICENSED_MODULE(Multimedia)
02597 #endif
02598 #if (QT_EDITION & QT_MODULE_XML)
02599 QT_LICENSED_MODULE(Xml)
02600 #endif
02601 #if (QT_EDITION & QT_MODULE_XMLPATTERNS)
02602 QT_LICENSED_MODULE(XmlPatterns)
02603 #endif
02604 #if (QT_EDITION & QT_MODULE_HELP)
02605 QT_LICENSED_MODULE(Help)
02606 #endif
02607 #if (QT_EDITION & QT_MODULE_SCRIPT) || defined(QT_BUILD_QMAKE)
02608 QT_LICENSED_MODULE(Script)
02609 #endif
02610 #if (QT_EDITION & QT_MODULE_SCRIPTTOOLS)
02611 QT_LICENSED_MODULE(ScriptTools)
02612 #endif
02613 #if (QT_EDITION & QT_MODULE_QT3SUPPORTLIGHT)
02614 QT_LICENSED_MODULE(Qt3SupportLight)
02615 #endif
02616 #if (QT_EDITION & QT_MODULE_QT3SUPPORT)
02617 QT_LICENSED_MODULE(Qt3Support)
02618 #endif
02619 #if (QT_EDITION & QT_MODULE_SVG)
02620 QT_LICENSED_MODULE(Svg)
02621 #endif
02622 #if (QT_EDITION & QT_MODULE_DECLARATIVE)
02623 QT_LICENSED_MODULE(Declarative)
02624 #endif
02625 #if (QT_EDITION & QT_MODULE_ACTIVEQT)
02626 QT_LICENSED_MODULE(ActiveQt)
02627 #endif
02628 #if (QT_EDITION & QT_MODULE_TEST)
02629 QT_LICENSED_MODULE(Test)
02630 #endif
02631 #if (QT_EDITION & QT_MODULE_DBUS)
02632 QT_LICENSED_MODULE(DBus)
02633 #endif
02634
02635 #define QT_MODULE(x) \
02636 typedef QtValidLicenseFor##x##Module Qt##x##Module;
02637
02638 #ifdef QT_NO_CONCURRENT
02639 # define QT_NO_QFUTURE
02640 #endif
02641
02642
02643
02644 #if (defined(Q_CC_MSVC) && _MSC_VER <= 1300)
02645 # define QT_NO_CONCURRENT
02646 #endif
02647
02648
02649
02650 #if defined(Q_CC_GNU) && (__GNUC__ < 4)
02651 # define QT_NO_CONCURRENT_MAP
02652 # define QT_NO_CONCURRENT_FILTER
02653 #endif
02654
02655 #ifdef Q_OS_QNX
02656
02657
02658 # define QT_NO_QWS_MULTIPROCESS
02659 # define QT_NO_QWS_SHARE_FONTS
02660 # define QT_NO_SYSTEMSEMAPHORE
02661 # define QT_NO_SHAREDMEMORY
02662
02663 # define QT_NO_PROCESS
02664 #endif
02665
02666 QT_END_NAMESPACE
02667 QT_END_HEADER
02668
02669 #endif
02670
02671 #endif