Root/
Source at commit 1322 created 12 years 8 months ago. By meklort, Add doxygen to utils folder | |
---|---|
1 | /****************************************************************************␊ |
2 | ** ␊ |
3 | **␊ |
4 | ** Global type declarations and definitions␊ |
5 | **␊ |
6 | ** Created : 920529␊ |
7 | **␊ |
8 | ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.␊ |
9 | **␊ |
10 | ** This file is part of the tools 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 QGLOBAL_H␊ |
39 | #define QGLOBAL_H␊ |
40 | ␊ |
41 | ␊ |
42 | #define QT_VERSION␉223␊ |
43 | #define QT_VERSION_STR␉"2.2.3"␊ |
44 | ␊ |
45 | ␊ |
46 | //␊ |
47 | // The operating system, must be one of: (_OS_x_)␊ |
48 | //␊ |
49 | // MAC␉- Macintosh␊ |
50 | // MSDOS␉- MS-DOS and Windows␊ |
51 | // OS2␉- OS/2␊ |
52 | // OS2EMX␉- XFree86 on OS/2 (not PM)␊ |
53 | // WIN32␉- Win32 (Windows 95/98 and Windows NT)␊ |
54 | // SUN␉- SunOS␊ |
55 | // SOLARIS␉- Sun Solaris␊ |
56 | // HPUX␉- HP-UX␊ |
57 | // ULTRIX␉- DEC Ultrix␊ |
58 | // LINUX␉- Linux␊ |
59 | // FREEBSD␉- FreeBSD␊ |
60 | // NETBSD␉- NetBSD␊ |
61 | // OPENBSD - OpenBSD␊ |
62 | // IRIX␉- SGI Irix␊ |
63 | // OSF␉- OSF Unix␊ |
64 | // BSDI␉- BSDI Unix␊ |
65 | // SCO␉- SCO of some sort␊ |
66 | // AIX␉- AIX Unix␊ |
67 | // UNIXWARE␉- SCO UnixWare␊ |
68 | // GNU␉- GNU Hurd␊ |
69 | // DGUX␉- DG Unix␊ |
70 | // UNIX␉- Any UNIX bsd/sysv system␊ |
71 | //␊ |
72 | ␊ |
73 | #if defined(__APPLE__) || defined(macintosh)␊ |
74 | #define _OS_MAC_␊ |
75 | # ifdef MAC_OS_X_VERSION_MIN_REQUIRED␊ |
76 | # undef MAC_OS_X_VERSION_MIN_REQUIRED␊ |
77 | # endif␊ |
78 | # define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_3␊ |
79 | # include <AvailabilityMacros.h>␊ |
80 | # if !defined(MAC_OS_X_VERSION_10_3)␊ |
81 | # define MAC_OS_X_VERSION_10_3 MAC_OS_X_VERSION_10_2 + 1␊ |
82 | # endif␊ |
83 | # if !defined(MAC_OS_X_VERSION_10_4)␊ |
84 | # define MAC_OS_X_VERSION_10_4 MAC_OS_X_VERSION_10_3 + 1␊ |
85 | # endif␊ |
86 | # if !defined(MAC_OS_X_VERSION_10_5)␊ |
87 | # define MAC_OS_X_VERSION_10_5 MAC_OS_X_VERSION_10_4 + 1␊ |
88 | # endif␊ |
89 | # if !defined(MAC_OS_X_VERSION_10_6)␊ |
90 | # define MAC_OS_X_VERSION_10_6 MAC_OS_X_VERSION_10_5 + 1␊ |
91 | # endif␊ |
92 | # if (MAC_OS_X_VERSION_MAX_ALLOWED > MAC_OS_X_VERSION_10_6)␊ |
93 | # error "This version of Mac OS X is unsupported"␊ |
94 | # endif␊ |
95 | #elif defined(MSDOS) || defined(_MSDOS) || defined(__MSDOS__)␊ |
96 | #define _OS_MSDOS_␊ |
97 | #elif defined(OS2) || defined(_OS2) || defined(__OS2__)␊ |
98 | #if defined(__EMX__)␊ |
99 | #define _OS_OS2EMX_␊ |
100 | #else␊ |
101 | #define _OS_OS2_␊ |
102 | #endif␊ |
103 | #elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__)␊ |
104 | #define _OS_WIN32_␊ |
105 | #elif defined(__MWERKS__) && defined(__INTEL__)␊ |
106 | #define _OS_WIN32_␊ |
107 | #elif defined(sun) || defined(__sun) || defined(__sun__)␊ |
108 | #if defined(__SVR4)␊ |
109 | #define _OS_SOLARIS_␊ |
110 | #else␊ |
111 | #define _OS_SUN_␊ |
112 | #endif␊ |
113 | #elif defined(hpux) || defined(__hpux) || defined(__hpux__)␊ |
114 | #define _OS_HPUX_␊ |
115 | #elif defined(ultrix) || defined(__ultrix) || defined(__ultrix__)␊ |
116 | #define _OS_ULTRIX_␊ |
117 | #elif defined(reliantunix)␊ |
118 | #define _OS_RELIANTUNIX_␊ |
119 | #elif defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)␊ |
120 | #define _OS_LINUX_␊ |
121 | #elif defined(__FreeBSD__)␊ |
122 | #define _OS_FREEBSD_␊ |
123 | #elif defined(__NetBSD__)␊ |
124 | #define _OS_NETBSD_␊ |
125 | #elif defined(__OpenBSD__)␊ |
126 | #define _OS_OPENBSD_␊ |
127 | #elif defined(sgi) || defined(__sgi)␊ |
128 | #define _OS_IRIX_␊ |
129 | #elif defined(__osf__)␊ |
130 | #define _OS_OSF_␊ |
131 | #elif defined(bsdi) || defined(__bsdi__)␊ |
132 | #define _OS_BSDI_␊ |
133 | #elif defined(_AIX)␊ |
134 | #define _OS_AIX_␊ |
135 | #elif defined(__Lynx__)␊ |
136 | #define _OS_LYNXOS_␊ |
137 | #elif defined(_UNIXWARE)␊ |
138 | #define _OS_UNIXWARE_␊ |
139 | #elif defined(DGUX)␊ |
140 | #define _OS_DGUX_␊ |
141 | #elif defined(__QNX__)␊ |
142 | #define _OS_QNX_␊ |
143 | #elif defined(_SCO_DS) || defined(M_UNIX) || defined(M_XENIX)␊ |
144 | #define _OS_SCO_␊ |
145 | #elif defined(sco) || defined(_UNIXWARE7)␊ |
146 | #define _OS_UNIXWARE7_␊ |
147 | #elif !defined(_SCO_DS) && defined(__USLC__) && defined(__SCO_VERSION__)␊ |
148 | #define _OS_UNIXWARE7_␊ |
149 | #elif defined(__CYGWIN__)␊ |
150 | #define _OS_CYGWIN_␊ |
151 | #elif defined(__BEOS__)␊ |
152 | #define _OS_BEOS_␊ |
153 | #elif defined(__MINT__)␊ |
154 | #define _OS_MINT_␊ |
155 | #else␊ |
156 | #error "Qt has not been ported to this OS - talk to qt-bugs@trolltech.com"␊ |
157 | #endif␊ |
158 | ␊ |
159 | #if defined(_OS_MAC_) || defined(_OS_MSDOS_) || defined(_OS_OS2_) || defined(_OS_WIN32_)␊ |
160 | #undef␉_OS_UNIX_␊ |
161 | #elif !defined(_OS_UNIX_)␊ |
162 | #define _OS_UNIX_␊ |
163 | // QT_CLEAN_NAMESPACE is not defined by default; it would break too␊ |
164 | // much code.␊ |
165 | #if !defined(QT_CLEAN_NAMESPACE) && !defined(UNIX)␊ |
166 | // ### remove 3.0␊ |
167 | #define UNIX␊ |
168 | #endif␊ |
169 | #endif␊ |
170 | ␊ |
171 | ␊ |
172 | //␊ |
173 | // The compiler, must be one of: (_CC_x_)␊ |
174 | //␊ |
175 | // SYM␉- Symantec C++ for both PC and Macintosh␊ |
176 | // MPW␉- MPW C++␊ |
177 | // MWERKS␉- Metrowerks CodeWarrior␊ |
178 | // MSVC␉- Microsoft Visual C/C++␊ |
179 | // BOR␉- Borland/Turbo C++␊ |
180 | // WAT␉- Watcom C++␊ |
181 | // GNU␉- GNU C++␊ |
182 | // COMEAU␉- Comeau C++␊ |
183 | // EDG␉- Edison Design Group C++␊ |
184 | // OC␉␉- CenterLine C++␊ |
185 | // SUN␉- Sun C++␊ |
186 | // DEC␉- DEC C++␊ |
187 | // HP␉␉- HPUX C++␊ |
188 | // USLC␉- SCO UnixWare7 C++␊ |
189 | // CDS␉- Reliant C++␊ |
190 | // KAI␉- KAI C++␊ |
191 | //␊ |
192 | ␊ |
193 | ␊ |
194 | // Should be sorted most-authorative to least-authorative␊ |
195 | ␊ |
196 | #if defined(__SC__)␊ |
197 | #define _CC_SYM_␊ |
198 | #elif defined( __KCC )␊ |
199 | #define _CC_KAI_␊ |
200 | #define _CC_EDG_␊ |
201 | #define Q_HAS_BOOL_TYPE␊ |
202 | #elif defined(applec)␊ |
203 | #define _CC_MPW_␊ |
204 | #elif defined(__MWERKS__)␊ |
205 | #define _CC_MWERKS_␊ |
206 | #define Q_HAS_BOOL_TYPE␊ |
207 | #elif defined(_MSC_VER)␊ |
208 | #define _CC_MSVC_␊ |
209 | #elif defined(__BORLANDC__) || defined(__TURBOC__)␊ |
210 | #define _CC_BOR_␊ |
211 | #elif defined(__WATCOMC__)␊ |
212 | #define _CC_WAT_␊ |
213 | #define Q_HAS_BOOL_TYPE␊ |
214 | #elif defined(__GNUC__)␊ |
215 | #define _CC_GNU_␊ |
216 | #if __GNUC__ == 2 && __GNUC_MINOR__ <= 7␊ |
217 | #define Q_FULL_TEMPLATE_INSTANTIATION␊ |
218 | #define Q_TEMPLATE_NEEDS_CLASS_DECLARATION␊ |
219 | #define Q_TEMPLATE_NEEDS_EXPLICIT_CONVERSION␊ |
220 | #define Q_SPURIOUS_NON_VOID_WARNING␊ |
221 | #endif␊ |
222 | #if __GNUC__ == 2 && __GNUC_MINOR__ >= 95␊ |
223 | #define Q_DELETING_VOID_UNDEFINED␊ |
224 | #endif␊ |
225 | #if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)␊ |
226 | #define Q_PACKED __attribute__ ((packed))␊ |
227 | #endif␊ |
228 | #elif defined(__xlC__)␊ |
229 | #define _CC_XLC_␊ |
230 | #define Q_FULL_TEMPLATE_INSTANTIATION␊ |
231 | #if __xlC__ >= 0x400␊ |
232 | #define Q_HAS_BOOL_TYPE␊ |
233 | #endif␊ |
234 | #if __xlC__ <= 0x0306␊ |
235 | #define Q_TEMPLATE_NEEDS_EXPLICIT_CONVERSION␊ |
236 | #endif␊ |
237 | #elif defined(como40)␊ |
238 | #define _CC_EDG_␊ |
239 | #define _CC_COMEAU_␊ |
240 | #define Q_HAS_BOOL_TYPE␊ |
241 | #define Q_C_CALLBACKS␊ |
242 | #elif defined(__USLC__)␊ |
243 | #define _CC_USLC_␊ |
244 | #ifdef __EDG__ // UnixWare7␊ |
245 | #define Q_HAS_BOOL_TYPE␊ |
246 | #endif␊ |
247 | #elif defined(__DECCXX)␊ |
248 | #define _CC_DEC_␊ |
249 | #if __DECCXX_VER >= 60060005␊ |
250 | #define Q_HAS_BOOL_TYPE␊ |
251 | #endif␊ |
252 | #elif defined(__EDG) || defined(__EDG__)␊ |
253 | // one observed on SGI DCC, the other documented␊ |
254 | #define _CC_EDG_␊ |
255 | #elif defined(OBJECTCENTER) || defined(CENTERLINE_CLPP)␊ |
256 | #define _CC_OC_␊ |
257 | #if defined(_BOOL)␊ |
258 | #define Q_HAS_BOOL_TYPE␊ |
259 | #endif␊ |
260 | #elif defined(__SUNPRO_CC)␊ |
261 | #define _CC_SUN_␊ |
262 | #if __SUNPRO_CC >= 0x500␊ |
263 | #define Q_HAS_BOOL_TYPE␊ |
264 | #define Q_C_CALLBACKS␊ |
265 | #endif␊ |
266 | #elif defined(__CDS__)␊ |
267 | #define _CC_CDS_␊ |
268 | #define Q_HAS_BOOL_TYPE␊ |
269 | #elif defined(_OS_HPUX_)␊ |
270 | // this test is from aCC online help␊ |
271 | #if defined(__HP_aCC) || __cplusplus >= 199707L␊ |
272 | // this is the aCC␊ |
273 | #define _CC_HP_ACC_␊ |
274 | #define Q_HAS_BOOL_TYPE␊ |
275 | #else␊ |
276 | // this is the CC␊ |
277 | #define _CC_HP_␊ |
278 | #define Q_FULL_TEMPLATE_INSTANTIATION␊ |
279 | #define Q_TEMPLATE_NEEDS_EXPLICIT_CONVERSION␊ |
280 | #endif // __HP_aCC␊ |
281 | #else␊ |
282 | #error "Qt has not been tested with this compiler - talk to qt-bugs@trolltech.com"␊ |
283 | #endif␊ |
284 | ␊ |
285 | // detect Microsoft compiler version␊ |
286 | #ifdef _CC_MSVC_␊ |
287 | #if _MSC_VER >= 1400␊ |
288 | #define _CC_V2005␊ |
289 | #elif _MSC_VER >= 1310␊ |
290 | #define _CC_V2003␊ |
291 | #elif _MSC_VER > 1300␊ |
292 | #define _CC_V2002␊ |
293 | #else␊ |
294 | #define _CC_V1998␊ |
295 | #endif ␊ |
296 | #endif␊ |
297 | ␊ |
298 | #ifndef Q_PACKED␊ |
299 | #define Q_PACKED␊ |
300 | #endif␊ |
301 | ␊ |
302 | // Window system setting␊ |
303 | ␊ |
304 | #if defined(_OS_MAC_)␊ |
305 | #define _WS_MAC_␊ |
306 | #elif defined(_OS_MSDOS_)␊ |
307 | #define _WS_WIN16_␊ |
308 | #error "Qt requires Win32 and does not work with Windows 3.x"␊ |
309 | #elif defined(_WIN32_X11_)␊ |
310 | #define _WS_X11_␊ |
311 | #elif defined(_OS_WIN32_)␊ |
312 | #define _WS_WIN32_␊ |
313 | #elif defined(_OS_OS2_)␊ |
314 | #error "Qt does not work with OS/2 Presentation Manager or Workplace Shell"␊ |
315 | #elif defined(_OS_UNIX_)␊ |
316 | #ifdef QWS␊ |
317 | #define _WS_QWS_␊ |
318 | #else␊ |
319 | #define _WS_X11_␊ |
320 | #endif␊ |
321 | #endif␊ |
322 | ␊ |
323 | #if defined(_WS_WIN16_) || defined(_WS_WIN32_)␊ |
324 | #define _WS_WIN_␊ |
325 | #endif␊ |
326 | ␊ |
327 | ␊ |
328 | //␊ |
329 | // Some classes do not permit copies to be made of an object.␊ |
330 | // These classes contains a private copy constructor and operator=␊ |
331 | // to disable copying (the compiler gives an error message).␊ |
332 | // Undefine Q_DISABLE_COPY to turn off this checking.␊ |
333 | //␊ |
334 | ␊ |
335 | #define Q_DISABLE_COPY␊ |
336 | ␊ |
337 | ␊ |
338 | //␊ |
339 | // Useful type definitions for Qt␊ |
340 | //␊ |
341 | ␊ |
342 | #if defined(bool)␊ |
343 | #define Q_HAS_BOOL_TYPE␊ |
344 | #elif __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 6)␊ |
345 | #define Q_HAS_BOOL_TYPE␊ |
346 | #elif _MSC_VER >= 1100 || __BORLANDC__ >= 0x500␊ |
347 | #define Q_HAS_BOOL_TYPE␊ |
348 | #elif defined(sgi) && defined(_BOOL)␊ |
349 | #define Q_HAS_BOOL_TYPE␊ |
350 | #endif␊ |
351 | ␊ |
352 | #if (QT_VERSION >= 300)␊ |
353 | #error "Use an enum for bool"␊ |
354 | #endif␊ |
355 | ␊ |
356 | #if !defined(Q_HAS_BOOL_TYPE)␊ |
357 | #if defined(_CC_MSVC_)␊ |
358 | #define _CC_BOOL_DEF_␊ |
359 | #define bool␉␉int␊ |
360 | #else␊ |
361 | typedef int␉␉bool;␊ |
362 | #endif␊ |
363 | #endif␊ |
364 | ␊ |
365 | typedef unsigned char␉uchar;␊ |
366 | typedef unsigned short␉ushort;␊ |
367 | typedef unsigned␉uint;␊ |
368 | typedef unsigned long␉ulong;␊ |
369 | typedef char␉ *pchar;␊ |
370 | typedef uchar␉ *puchar;␊ |
371 | typedef const char *pcchar;␊ |
372 | #if defined(_OS_WIN32_) && !defined(_CC_GNU_)␊ |
373 | typedef __int64 int64;␊ |
374 | typedef unsigned __int64 uint64;␊ |
375 | #else␊ |
376 | typedef long long int64;␊ |
377 | typedef unsigned long long uint64;␊ |
378 | #endif␊ |
379 | ␊ |
380 | ␊ |
381 | //␊ |
382 | // Constant bool values␊ |
383 | //␊ |
384 | ␊ |
385 | #ifndef TRUE␊ |
386 | const bool FALSE = 0;␊ |
387 | const bool TRUE = !0;␊ |
388 | #endif␊ |
389 | ␊ |
390 | ␊ |
391 | #if defined(_CC_MSVC_)␊ |
392 | // Workaround for static const members.␊ |
393 | #define QT_STATIC_CONST static␊ |
394 | #define QT_STATIC_CONST_IMPL␊ |
395 | #else␊ |
396 | #define QT_STATIC_CONST static const␊ |
397 | #define QT_STATIC_CONST_IMPL const␊ |
398 | #endif␊ |
399 | ␊ |
400 | ␊ |
401 | ␊ |
402 | //␊ |
403 | // Utility macros and inline functions␊ |
404 | //␊ |
405 | ␊ |
406 | #define QMAX(a,b)␉((a) > (b) ? (a) : (b))␊ |
407 | #define QMIN(a,b)␉((a) < (b) ? (a) : (b))␊ |
408 | #define QABS(a)␉␉((a) >= 0 ? (a) : -(a))␊ |
409 | ␊ |
410 | inline int qRound( double d )␊ |
411 | {␊ |
412 | return d > 0.0 ? int(d+0.5) : int(d-0.5);␊ |
413 | }␊ |
414 | ␊ |
415 | ␊ |
416 | //␊ |
417 | // Size-dependent types (architechture-dependent byte order)␊ |
418 | //␊ |
419 | ␊ |
420 | // QT_CLEAN_NAMESPACE is not defined by default; it would break too␊ |
421 | // much code.␊ |
422 | #if !defined(QT_CLEAN_NAMESPACE)␊ |
423 | typedef signed char␉INT8;␉␉␉// 8 bit signed␊ |
424 | typedef unsigned char␉UINT8;␉␉␉// 8 bit unsigned␊ |
425 | typedef short␉␉INT16;␉␉␉// 16 bit signed␊ |
426 | typedef unsigned short␉UINT16;␉␉␉// 16 bit unsigned␊ |
427 | typedef int␉␉INT32;␉␉␉// 32 bit signed␊ |
428 | typedef unsigned int␉UINT32;␉␉␉// 32 bit unsigned␊ |
429 | #endif␊ |
430 | ␊ |
431 | typedef signed char␉Q_INT8;␉␉␉// 8 bit signed␊ |
432 | typedef unsigned char␉Q_UINT8;␉␉// 8 bit unsigned␊ |
433 | typedef short␉␉Q_INT16;␉␉// 16 bit signed␊ |
434 | typedef unsigned short␉Q_UINT16;␉␉// 16 bit unsigned␊ |
435 | typedef int␉␉Q_INT32;␉␉// 32 bit signed␊ |
436 | typedef unsigned int␉Q_UINT32;␉␉// 32 bit unsigned␊ |
437 | typedef long␉␉Q_INT64;␉␉// up to 64 bit signed␊ |
438 | typedef unsigned long␉Q_UINT64;␉␉// up to 64 bit unsigned␊ |
439 | ␊ |
440 | //␊ |
441 | // Data stream functions is provided by many classes (defined in qdatastream.h)␊ |
442 | //␊ |
443 | ␊ |
444 | class QDataStream;␊ |
445 | ␊ |
446 | ␊ |
447 | ␊ |
448 | #ifdef _WS_WIN_␊ |
449 | extern bool qt_winunicode;␊ |
450 | #endif␊ |
451 | ␊ |
452 | #ifndef QT_H␊ |
453 | #include <qfeatures.h>␊ |
454 | #endif // QT_H␊ |
455 | ␊ |
456 | //␊ |
457 | // Create Qt DLL if QT_DLL is defined (Windows only)␊ |
458 | //␊ |
459 | ␊ |
460 | #if defined(_OS_WIN32_)␊ |
461 | #if defined(QT_NODLL)␊ |
462 | #undef QT_MAKEDLL␊ |
463 | #undef QT_DLL␊ |
464 | #endif␊ |
465 | #ifdef QT_DLL␊ |
466 | #if defined(QT_MAKEDLL)␉␉/* create a Qt DLL library */␊ |
467 | #undef QT_DLL␊ |
468 | #define Q_EXPORT __declspec(dllexport)␊ |
469 | #define Q_TEMPLATEDLL␊ |
470 | #undef Q_DISABLE_COPY␉␉/* avoid unresolved externals */␊ |
471 | #endif␊ |
472 | #endif␊ |
473 | #if defined(QT_DLL)␉␉/* use a Qt DLL library */␊ |
474 | #define Q_EXPORT __declspec(dllimport)␊ |
475 | #define Q_TEMPLATEDLL␊ |
476 | #undef Q_DISABLE_COPY␉␉/* avoid unresolved externals */␊ |
477 | #endif␊ |
478 | #else // ! _OS_WIN32_␊ |
479 | #undef QT_MAKEDLL␉␉/* ignore these for other platforms */␊ |
480 | #undef QT_DLL␊ |
481 | #endif␊ |
482 | ␊ |
483 | #ifndef Q_EXPORT␊ |
484 | #define Q_EXPORT␊ |
485 | #endif␊ |
486 | ␊ |
487 | //␊ |
488 | // System information␊ |
489 | //␊ |
490 | ␊ |
491 | Q_EXPORT const char *qVersion();␊ |
492 | Q_EXPORT bool qSysInfo( int *wordSize, bool *bigEndian );␊ |
493 | ␊ |
494 | ␊ |
495 | //␊ |
496 | // Debugging and error handling␊ |
497 | //␊ |
498 | ␊ |
499 | #if !defined(NO_CHECK)␊ |
500 | #define CHECK_STATE␉␉␉␉// check state of objects etc.␊ |
501 | #define CHECK_RANGE␉␉␉␉// check range of indexes etc.␊ |
502 | #define CHECK_NULL␉␉␉␉// check null pointers␊ |
503 | #define CHECK_MATH␉␉␉␉// check math functions␊ |
504 | #endif␊ |
505 | ␊ |
506 | #if !defined(NO_DEBUG) && !defined(DEBUG)␊ |
507 | #define DEBUG␉␉␉␉␉// display debug messages␊ |
508 | #endif␊ |
509 | ␊ |
510 | //␊ |
511 | // Avoid some particularly useless warnings from some stupid compilers.␊ |
512 | // To get ALL C++ compiler warnings, define CC_WARNINGS or comment out␊ |
513 | // the line "#define Q_NO_WARNINGS"␊ |
514 | //␊ |
515 | ␊ |
516 | #if !defined(CC_WARNINGS)␊ |
517 | #define Q_NO_WARNINGS␊ |
518 | #endif␊ |
519 | #if defined(Q_NO_WARNINGS)␊ |
520 | #if defined(_CC_MSVC_)␊ |
521 | #pragma warning(disable: 4244)␊ |
522 | #pragma warning(disable: 4275)␊ |
523 | #pragma warning(disable: 4514)␊ |
524 | #pragma warning(disable: 4800)␊ |
525 | #pragma warning(disable: 4097)␊ |
526 | #pragma warning(disable: 4706)␊ |
527 | #elif defined(_CC_BOR_)␊ |
528 | #pragma option -w-inl␊ |
529 | #pragma option -w-aus␊ |
530 | #pragma warn -inl␊ |
531 | #pragma warn -pia␊ |
532 | #pragma warn -ccc␊ |
533 | #pragma warn -rch␊ |
534 | #pragma warn -sig␊ |
535 | #elif defined(_CC_MWERKS_)␊ |
536 | #pragma warn_possunwant off␊ |
537 | #endif␊ |
538 | #endif // Q_NO_WARNINGS␊ |
539 | ␊ |
540 | //␊ |
541 | // Avoid dead code␊ |
542 | //␊ |
543 | ␊ |
544 | #if defined(_CC_EDG_) || defined(_CC_WAT_)␊ |
545 | #define Q_NO_DEAD_CODE␊ |
546 | #endif␊ |
547 | ␊ |
548 | //␊ |
549 | // Use to avoid "unused parameter" warnings␊ |
550 | //␊ |
551 | ␊ |
552 | #define Q_UNUSED(x) x=x;␊ |
553 | #define Q_CONST_UNUSED(x) (void)x;␊ |
554 | ␊ |
555 | Q_EXPORT void qDebug( const char *, ... )␉// print debug message␊ |
556 | #if defined(_CC_GNU_) && !defined(__INSURE__)␊ |
557 | __attribute__ ((format (printf, 1, 2)))␊ |
558 | #endif␊ |
559 | ;␊ |
560 | ␊ |
561 | Q_EXPORT void qWarning( const char *, ... )␉// print warning message␊ |
562 | #if defined(_CC_GNU_) && !defined(__INSURE__)␊ |
563 | __attribute__ ((format (printf, 1, 2)))␊ |
564 | #endif␊ |
565 | ;␊ |
566 | ␊ |
567 | Q_EXPORT void qFatal( const char *, ... )␉// print fatal message and exit␊ |
568 | #if defined(_CC_GNU_)␊ |
569 | __attribute__ ((format (printf, 1, 2)))␊ |
570 | #endif␊ |
571 | ;␊ |
572 | ␊ |
573 | ␊ |
574 | // QT_CLEAN_NAMESPACE is not defined by default; it would break too␊ |
575 | // much code.␊ |
576 | #if !defined(QT_CLEAN_NAMESPACE)␊ |
577 | // in that case, also define the old ones...␊ |
578 | ␊ |
579 | Q_EXPORT void debug( const char *, ... )␉// print debug message␊ |
580 | #if defined(_CC_GNU_) && !defined(__INSURE__)␊ |
581 | __attribute__ ((format (printf, 1, 2)))␊ |
582 | #endif␊ |
583 | ;␊ |
584 | ␊ |
585 | Q_EXPORT void warning( const char *, ... )␉// print warning message␊ |
586 | #if defined(_CC_GNU_) && !defined(__INSURE__)␊ |
587 | __attribute__ ((format (printf, 1, 2)))␊ |
588 | #endif␊ |
589 | ;␊ |
590 | ␊ |
591 | Q_EXPORT void fatal( const char *, ... )␉// print fatal message and exit␊ |
592 | #if defined(_CC_GNU_) && !defined(__INSURE__)␊ |
593 | __attribute__ ((format (printf, 1, 2)))␊ |
594 | #endif␊ |
595 | ;␊ |
596 | ␊ |
597 | // okay, that was debug()/warning()/fatal()␊ |
598 | #endif␊ |
599 | ␊ |
600 | #if !defined(ASSERT)␊ |
601 | #if defined(CHECK_STATE)␊ |
602 | #if defined(QT_FATAL_ASSERT)␊ |
603 | #define ASSERT(x) if ( !(x) )\␊ |
604 | ␉qFatal("ASSERT: \"%s\" in %s (%d)",#x,__FILE__,__LINE__)␊ |
605 | #else␊ |
606 | #define ASSERT(x) if ( !(x) )\␊ |
607 | ␉qWarning("ASSERT: \"%s\" in %s (%d)",#x,__FILE__,__LINE__)␊ |
608 | #endif␊ |
609 | #else␊ |
610 | #define ASSERT(x)␊ |
611 | #endif␊ |
612 | #endif␊ |
613 | ␊ |
614 | Q_EXPORT bool qt_check_pointer( bool c, const char *, int );␊ |
615 | ␊ |
616 | #if defined(CHECK_NULL)␊ |
617 | #define CHECK_PTR(p) (qt_check_pointer((p)==0,__FILE__,__LINE__))␊ |
618 | #else␊ |
619 | #define CHECK_PTR(p)␊ |
620 | #endif␊ |
621 | ␊ |
622 | enum QtMsgType { QtDebugMsg, QtWarningMsg, QtFatalMsg };␊ |
623 | ␊ |
624 | typedef void (*msg_handler)(QtMsgType, const char *);␊ |
625 | Q_EXPORT msg_handler qInstallMsgHandler( msg_handler );␊ |
626 | ␊ |
627 | ␊ |
628 | Q_EXPORT void qSuppressObsoleteWarnings( bool = TRUE );␊ |
629 | ␊ |
630 | #if !defined(QT_REJECT_OBSOLETE)␊ |
631 | #define QT_OBSOLETE␊ |
632 | Q_EXPORT void qObsolete( const char *obj, const char *oldfunc,␊ |
633 | ␉␉␉ const char *newfunc );␊ |
634 | Q_EXPORT void qObsolete( const char *obj, const char *oldfunc );␊ |
635 | Q_EXPORT void qObsolete( const char *message );␊ |
636 | #endif␊ |
637 | ␊ |
638 | // DvH: added to avoid warnings on recent gcc versions␊ |
639 | #define Q_DELETING_VOID_UNDEFINED␊ |
640 | ␊ |
641 | #endif // QGLOBAL_H␊ |
642 |