]> git.saurik.com Git - wxWidgets.git/blame - include/wx/defs.h
added wx<TemplateListName>::Node typedef for the node corresponding to this list
[wxWidgets.git] / include / wx / defs.h
CommitLineData
c801d85f
KB
1/////////////////////////////////////////////////////////////////////////////
2// Name: defs.h
3// Purpose: Declarations/definitions common to all wx source files
4// Author: Julian Smart and others
5// Modified by:
6// Created: 01/02/97
7// RCS-ID: $Id$
8// Copyright: (c)
9// Licence: wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
34138703
JS
12#ifndef _WX_DEFS_H_
13#define _WX_DEFS_H_
c801d85f
KB
14
15#ifdef __GNUG__
16#pragma interface "defs.h"
17#endif
18
c801d85f
KB
19#include <stddef.h>
20
21#include "wx/setup.h"
22#include "wx/version.h"
23
24// Helps SGI compilation, apparently
d4b67f95 25#if defined(__SGI__)
c67daf87 26#if defined(__GNUG__)
c801d85f 27#define __need_wchar_t
c67daf87 28#else
d4b67f95 29/* Note I use the term __SGI_CC__ for both cc and CC, its not a good idea to
c67daf87
UR
30 * mix gcc and cc/CC, the name mangling is different */
31#define __SGI_CC__
32#endif
c801d85f
KB
33#endif
34
5dcf05ae
JS
35#if defined(sun) || defined(__SUN__)
36# if !defined(__GNUG__)
37# ifndef __SUNCC__
38# define __SUNCC__
39# endif
40# endif
41#endif
42
fd3f686c 43// suppress some Visual C++ warnings
c801d85f 44#ifdef _MSC_VER
fd3f686c
VZ
45# pragma warning(disable:4244) // cobversion from double to float
46# pragma warning(disable:4100) // unreferenced formal parameter
c801d85f
KB
47#endif
48
c801d85f
KB
49//////////////////////////////////////////////////////////////////////////////////
50// Currently Only MS-Windows/NT, XView and Motif are supported
51//
2049ba38
KB
52#if defined(__HPUX__) && !defined(__WXMOTIF__)
53# define __WXMOTIF__
c801d85f 54#endif
2049ba38 55#if defined(__WXMOTIF__)
c801d85f 56# define __X__
c801d85f
KB
57#endif
58
16ee7f42 59#ifdef __WXMSW__
c801d85f 60// wxWindows checks for WIN32, not __WIN32__
34138703 61#if ((defined(WIN32) || defined(__NT__)) && !defined(__WIN32__) && !defined(__WXSTUBS__))
c801d85f
KB
62#define __WIN32__
63#endif
64
65#ifndef __WIN32__
66#define __WIN16__
67#endif
68
69#if !defined(__WIN95__) && (WINVER >= 0x0400)
70#define __WIN95__
71#endif
72
16ee7f42
VZ
73#endif // wxMSW
74
c801d85f 75// Make sure the environment is set correctly
2049ba38 76#if defined(__WXMSW__) && defined(__X__)
c801d85f 77# error "Target can't be both X and Windows"
b4e76e0d 78#elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && \
34138703
JS
79 !defined(__WXMAC__) && !defined(__X__) && !defined(__WXQT__) && !defined(__WXSTUBS__)
80#error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXSTUBS__]"
c801d85f
KB
81#endif
82
34138703 83#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXSTUBS__)
c801d85f
KB
84
85// Bool is now obsolete, use bool instead
86// typedef int Bool;
87
88#ifndef TRUE
89# define TRUE 1
90# define FALSE 0
91# define Bool_DEFINED
92#endif
93
2049ba38 94#elif defined(__WXMSW__)
c801d85f
KB
95
96#ifndef TRUE
97# define TRUE 1
98# define FALSE 0
99#endif
100
101#endif
102
103// VC++ 4.0 is 1000.
104
105// Add more tests here for compilers that don't already define bool.
9ac65416
SC
106#if defined( __MWERKS__ )
107 #if (__MWERKS__ < 0x1000) || !__option(bool)
108 typedef unsigned int bool;
109 #endif
110#elif defined(_MSC_VER) && (_MSC_VER <= 1000)
dc9e1e56
VZ
111 typedef unsigned int bool;
112#elif defined(_MSC_VER) && (_MSC_VER == 1020)
113 #define bool unsigned int
114#elif defined(__BORLANDC__) && (__BORLANDC__ < 0x500)
115 typedef unsigned int bool;
7be1f0d9
JS
116#elif defined(__WATCOMC__)
117 typedef unsigned int bool;
5dcf05ae
JS
118#elif defined(__SUNCC__)
119 // If we use int, we get identically overloaded functions in config.cpp
120 typedef unsigned char bool;
16c1f7f3
JS
121#endif
122
62448488 123#if ( defined(_MSC_VER) && (_MSC_VER <= 800) ) || defined(__GNUWIN32__) || (defined(__BORLANDC__) && defined(__WIN16__))
dc9e1e56 124 #define byte unsigned char
c801d85f
KB
125#endif
126
127typedef short int WXTYPE;
128typedef int wxWindowID;
129
130// Macro to cut down on compiler warnings.
131#if REMOVE_UNUSED_ARG
132#define WXUNUSED(identifier) /* identifier */
133#else // stupid, broken compiler
134#define WXUNUSED(identifier) identifier
135#endif
136
137/*
138 * Making or using wxWindows as a Windows DLL
139 */
140
2049ba38 141#ifdef __WXMSW__
c801d85f
KB
142
143#ifdef __BORLANDC__
144
145# ifdef WXMAKINGDLL
146# define WXDLLEXPORT __export
147# define WXDLLEXPORT_DATA(type) type __export
148# define WXDLLEXPORT_CTORFN __export
149# elif defined(WXUSINGDLL)
150# define WXDLLEXPORT __import
151# define WXDLLEXPORT_DATA(type) type __import
152# define WXDLLEXPORT_CTORFN
153# else
154# define WXDLLEXPORT
155# define WXDLLEXPORT_DATA(type) type
156# define WXDLLEXPORT_CTORFN
157# endif
158
159#else
160
161# ifdef WXMAKINGDLL
162# define WXDLLEXPORT __declspec( dllexport )
163# define WXDLLEXPORT_DATA(type) __declspec( dllexport ) type
184b5d99 164# define WXDLLEXPORT_CTORFN // __declspec( dllexport )
c801d85f
KB
165# elif defined(WXUSINGDLL)
166# define WXDLLEXPORT __declspec( dllimport )
167# define WXDLLEXPORT_DATA(type) __declspec( dllimport ) type
168# define WXDLLEXPORT_CTORFN
169# else
170# define WXDLLEXPORT
171# define WXDLLEXPORT_DATA(type) type
172# define WXDLLEXPORT_CTORFN
173# endif
174
175#endif
176
177#else
178// Non-Windows
179# define WXDLLEXPORT
180# define WXDLLEXPORT_DATA(type) type
181# define WXDLLEXPORT_CTORFN
182#endif
183
184// For ostream, istream ofstream
185#if defined(__BORLANDC__) && defined( _RTLDLL )
186# define WXDLLIMPORT __import
187#else
188# define WXDLLIMPORT
189#endif
190
191class WXDLLEXPORT wxObject;
192class WXDLLEXPORT wxEvent;
193
c86f1403 194 /** symbolic constant used by all Find()-like functions returning positive
c801d85f
KB
195 integer on success as failure indicator */
196#define NOT_FOUND (-1)
c801d85f
KB
197
198// ----------------------------------------------------------------------------
199// Error codes
200// ----------------------------------------------------------------------------
201
202/// Standard error codes
203enum ErrCode
204{
205 /// invalid parameter (in broad sense)
206 ERR_PARAM = (-4000),
207 /// no more data (iteration functions usually return this)
208 ERR_NODATA,
209 /// user cancelled the operation
210 ERR_CANCEL,
211 /// no error (the only non negative error code)
212 ERR_SUCCESS = 0
213};
214
215// ----------------------------------------------------------------------------
216/** @name Very common macros */
217// ----------------------------------------------------------------------------
218//@{
a3622daa
VZ
219/// delete pointer if it is not NULL and NULL it afterwards
220// (checking that it's !NULL before passing it to delete is just a
221// a question of style, because delete will do it itself anyhow, but it might
222// be considered as an error by some overzealous debugging implementations of
223// the library, so we do it ourselves)
c67daf87 224#if defined(__SGI_CC__)
d4b67f95 225// Okay this is bad styling, but the native SGI compiler is very picky, it
c67daf87 226// wont let you compare/assign between a NULL (void *) and another pointer
d4b67f95
RD
227// type. To be really clean we'd need to pass in another argument, the type
228// of p.
229// Also note the use of 0L, this would allow future possible 64bit support
230// (as yet untested) by ensuring that we zero all the bits in a pointer
231// (which is always the same length as a long (at least with the LP64 standard)
c67daf87 232// --- offer aug 98
d8260b2f 233#define wxDELETE(p) if ( (p) ) { delete (p); p = 0L; }
c67daf87 234#else
d8260b2f 235#define wxDELETE(p) if ( (p) != NULL ) { delete p; p = NULL; }
c67daf87 236#endif /* __SGI__CC__ */
a3622daa
VZ
237
238// delete an array and NULL it (see comments above)
c67daf87
UR
239#if defined(__SGI_CC__)
240// see above comment.
241#define wxDELETEA(p) if ( (p) ) { delete [] (p); p = 0L; }
242#else
d8260b2f 243#define wxDELETEA(p) if ( ((void *) (p)) != NULL ) { delete [] p; p = NULL; }
c67daf87 244#endif /* __SGI__CC__ */
c801d85f
KB
245
246/// size of statically declared array
247#define WXSIZEOF(array) (sizeof(array)/sizeof(array[0]))
248
8cb50e4b
JS
249// Use of these suppresses some compiler warnings
250WXDLLEXPORT_DATA(extern const bool) wxTrue;
251WXDLLEXPORT_DATA(extern const bool) wxFalse;
252
c801d85f
KB
253// ----------------------------------------------------------------------------
254// compiler and OS identification
255// ----------------------------------------------------------------------------
256
257// OS
d4b67f95 258#if defined(__HPUX__) || defined(____SVR4____) || defined(__LINUX__) || defined(__sgi ) || defined(__unix__)
c801d85f
KB
259 #ifndef __UNIX__
260 #define __UNIX__
261 #endif
262#endif
263
264#ifndef __UNIX__ // Windows
c801d85f
KB
265 #if defined(_MSC_VER)
266 #define __VISUALC__
267 #elif defined(__BCPLUSPLUS__) && !defined(__BORLANDC__)
268 #define __BORLANDC__
269 #elif defined(__WATCOMC__)
270 //#define __WATCOMC__
271 #elif defined(__SC__)
272 #define __SYMANTECC__
273 #endif // compiler
274
275#endif // OS
276
c801d85f
KB
277// ----------------------------------------------------------------------------
278// compiler specific settings
279// ----------------------------------------------------------------------------
280
281// to allow compiling with warning level 4 under Microsoft Visual C++ some
282// warnings just must be disabled
283#ifdef __VISUALC__
284 #pragma warning(disable: 4514) // unreferenced inline func has been removed
d4b67f95 285/*
c801d85f
KB
286 you might be tempted to disable this one also: triggered by CHECK and FAIL
287 macros in debug.h, but it's, overall, is a rather useful one, so I leave it
288 and will try to find some way to disable this warning just for CHECK/FAIL.
289 Anyone?
290*/
291 #pragma warning(disable: 4127) // conditional expression is constant
292
293#endif // VC++
294
8a60ae88
UU
295#if _MSC_VER > 1010
296#undef try
297#undef except
298#undef finally
299#define except(x) catch(...)
17dff81c
SC
300#elif defined(__MWERKS__)
301#undef try
302#undef except
303#undef finally
304#define except(x) catch(...)
8a60ae88
UU
305#endif
306
85ee3474
UU
307// where should i put this? we need to make sure of this as it breaks
308// the <iostream> code.
ea57084d 309#if !wxUSE_IOSTREAMH && defined(__WXDEBUG__)
518f33a4 310#ifndef __MWERKS__
ea57084d 311#undef __WXDEBUG__
85ee3474 312#endif
518f33a4 313#endif
85ee3474 314
c801d85f
KB
315// Callback function type definition
316typedef void (*wxFunction) (wxObject&, wxEvent&);
317
318/*
319 * Window style flags.
320 * Values are chosen so they can be |'ed in a bit list.
321 * Some styles are used across more than one group,
322 * so the values mustn't clash with others in the group.
323 * Otherwise, numbers can be reused across groups.
324 *
325 * From version 1.66:
326 * Window (cross-group) styles now take up the first half
327 * of the flag, and control-specific styles the
328 * second half.
d4b67f95 329 *
c801d85f
KB
330 */
331
332/*
333 * Window (Frame/dialog/subwindow/panel item) style flags
334 */
335#define wxVSCROLL 0x80000000
336#define wxHSCROLL 0x40000000
337#define wxCAPTION 0x20000000
338
339// New styles
340#define wxDOUBLE_BORDER 0x10000000
341#define wxSUNKEN_BORDER 0x08000000
342#define wxRAISED_BORDER 0x04000000
343#define wxBORDER 0x02000000
344#define wxSIMPLE_BORDER 0x02000000
345#define wxSTATIC_BORDER 0x01000000
346#define wxTRANSPARENT_WINDOW 0x00100000
347#define wxNO_BORDER 0x00200000
348
349#define wxUSER_COLOURS 0x00800000
350 // Override CTL3D etc. control colour processing to
351 // allow own background colour
64693098 352 // OBSOLETE - use wxNO_3D instead
c801d85f
KB
353#define wxNO_3D 0x00800000
354 // Override CTL3D or native 3D styles for children
565215b2
JS
355#define wxCLIP_CHILDREN 0x00400000
356 // Clip children when painting, which reduces flicker in
357 // e.g. frames and splitter windows, but can't be used in
358 // a panel where a static box must be 'transparent' (panel
359 // paints the background for it)
c801d85f
KB
360
361// Add this style to a panel to get tab traversal working
362// outside of dialogs.
363#define wxTAB_TRAVERSAL 0x00080000
364
365// Orientations
366#define wxHORIZONTAL 0x01
367#define wxVERTICAL 0x02
368#define wxBOTH (wxVERTICAL|wxHORIZONTAL)
369#define wxCENTER_FRAME 0x04 /* centering into frame rather than screen */
370
371/*
372 * Frame/dialog style flags
373 */
374#define wxSTAY_ON_TOP 0x8000
375#define wxICONIZE 0x4000
376#define wxMINIMIZE wxICONIZE
377#define wxMAXIMIZE 0x2000
378#define wxTHICK_FRAME 0x1000
379#define wxSYSTEM_MENU 0x0800
380#define wxMINIMIZE_BOX 0x0400
381#define wxMAXIMIZE_BOX 0x0200
382#define wxTINY_CAPTION_HORIZ 0x0100
383#define wxTINY_CAPTION_VERT 0x0080
384#define wxRESIZE_BOX wxMAXIMIZE_BOX
385#define wxRESIZE_BORDER 0x0040
386#define wxDIALOG_MODAL 0x0020
387#define wxDIALOG_MODELESS 0x0000
388
565215b2 389#define wxDEFAULT_FRAME_STYLE (wxRESIZE_BORDER | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxTHICK_FRAME | wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN)
c801d85f
KB
390
391#if WXWIN_COMPATIBILITY
392#define wxDEFAULT_FRAME wxDEFAULT_FRAME_STYLE
393#endif
394
395#define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU|wxCAPTION|wxTHICK_FRAME)
396
397/*
398 * Subwindow style flags
399 */
400#define wxRETAINED 0x0001
401#define wxBACKINGSTORE wxRETAINED
402// wxCanvas or wxPanel can optionally have a thick frame under MS Windows.
403// #define wxTHICK_FRAME 0x1000
404
405/*
406 * wxToolBar style flags
407 */
d4b67f95 408
c801d85f 409#define wxTB_3DBUTTONS 0x8000
81d66cf3
JS
410#define wxTB_HORIZONTAL 0x0002
411#define wxTB_VERTICAL 0x0004
bb6290e3 412// Flatbar/Coolbar under Win98
81d66cf3 413#define wxTB_FLAT 0x0008
c801d85f
KB
414
415/*
416 * Apply to all panel items
417 */
d4b67f95 418
c801d85f
KB
419#define wxCOLOURED 0x0800
420// Alignment for panel item labels: replaces characters with zeros
421// when creating label, so spaces can be included in string for alignment.
422#define wxFIXED_LENGTH 0x0400
423#define wxALIGN_LEFT 0x0000
424#define wxALIGN_CENTER 0x0100
425#define wxALIGN_CENTRE 0x0100
426#define wxALIGN_RIGHT 0x0200
427
428/*
429 * Styles for wxListBox
430 */
431
c801d85f 432#define wxLB_SORT 0x0010
9c331ded 433#define wxLB_SINGLE 0x0020
c801d85f
KB
434#define wxLB_MULTIPLE 0x0040
435#define wxLB_EXTENDED 0x0080
436// wxLB_OWNERDRAW is Windows-only
437#define wxLB_OWNERDRAW 0x0100
9c331ded
JS
438#define wxLB_NEEDED_SB 0x0200
439#define wxLB_ALWAYS_SB 0x0400
c801d85f
KB
440#define wxLB_HSCROLL wxHSCROLL
441
442/*
443 * wxTextCtrl style flags
444 */
445#define wxPROCESS_ENTER 0x0004
446#define wxPASSWORD 0x0008
447#define wxTE_PROCESS_ENTER wxPROCESS_ENTER
448#define wxTE_PASSWORD wxPASSWORD
449#define wxTE_READONLY 0x0010
450#define wxTE_MULTILINE 0x0020
451
b039c367
VZ
452// MSW-only
453#define wxTE_RICHTEXT 0x0020
c801d85f
KB
454
455/*
456 * wxComboBox style flags
457 */
458#define wxCB_SIMPLE 0x0004
c801d85f 459#define wxCB_SORT 0x0008
9c331ded
JS
460#define wxCB_READONLY 0x0010
461#define wxCB_DROPDOWN 0x0020
c801d85f
KB
462
463/*
464 * wxRadioBox/wxRadioButton style flags
465 */
fa18b757
JS
466
467// New, more intuitive names to specify majorDim argument
468
469// Same as wxRA_HORIZONTAL
470#define wxRA_SPECIFY_COLS 0x0001
471// Same as wxRA_VERTICAL
472#define wxRA_SPECIFY_ROWS 0x0002
473
474// Old names for compatibility
c801d85f
KB
475#define wxRA_HORIZONTAL wxHORIZONTAL
476#define wxRA_VERTICAL wxVERTICAL
477#define wxRB_GROUP 0x0004
478
479/*
480 * wxGauge flags
481 */
482#define wxGA_PROGRESSBAR 0x0004
483#define wxGA_HORIZONTAL wxHORIZONTAL
484#define wxGA_VERTICAL wxVERTICAL
485
486/*
487 * wxSlider flags
488 */
d4b67f95 489
c801d85f
KB
490#define wxSL_HORIZONTAL wxHORIZONTAL
491#define wxSL_VERTICAL wxVERTICAL
492// The next one is obsolete - use scroll events instead
493#define wxSL_NOTIFY_DRAG 0x0000
494#define wxSL_AUTOTICKS 0x0008
495// #define wxSL_MANUALTICKS 0x0010
496#define wxSL_LABELS 0x0020
497#define wxSL_LEFT 0x0040
498#define wxSL_TOP 0x0080
499#define wxSL_RIGHT 0x0100
500#define wxSL_BOTTOM 0x0200
501#define wxSL_BOTH 0x0400
502#define wxSL_SELRANGE 0x0800
503
504/*
505 * wxScrollBar flags
506 */
d4b67f95 507
c801d85f
KB
508#define wxSB_HORIZONTAL wxHORIZONTAL
509#define wxSB_VERTICAL wxVERTICAL
510
511/*
512 * wxButton flags
513 */
514
515#define wxBU_AUTODRAW 0x0004
516#define wxBU_NOAUTODRAW 0x0000
517
518/*
519 * wxTreeCtrl flags
520 */
521
522#define wxTR_HAS_BUTTONS 0x0004
523#define wxTR_EDIT_LABELS 0x0008
64693098 524#define wxTR_LINES_AT_ROOT 0x0010
c801d85f
KB
525
526/*
527 * wxListCtrl flags
528 */
529
530#define wxLC_ICON 0x0004
531#define wxLC_SMALL_ICON 0x0008
532#define wxLC_LIST 0x0010
533#define wxLC_REPORT 0x0020
534#define wxLC_ALIGN_TOP 0x0040
535#define wxLC_ALIGN_LEFT 0x0080
536#define wxLC_AUTOARRANGE 0x0100
537#define wxLC_USER_TEXT 0x0200
538#define wxLC_EDIT_LABELS 0x0400
539#define wxLC_NO_HEADER 0x0800
540#define wxLC_NO_SORT_HEADER 0x1000
541#define wxLC_SINGLE_SEL 0x2000
542#define wxLC_SORT_ASCENDING 0x4000
543#define wxLC_SORT_DESCENDING 0x8000
544
545#define wxLC_MASK_TYPE (wxLC_ICON | wxLC_SMALL_ICON | wxLC_LIST | wxLC_REPORT)
546#define wxLC_MASK_ALIGN (wxLC_ALIGN_TOP | wxLC_ALIGN_LEFT)
547#define wxLC_MASK_SORT (wxLC_SORT_ASCENDING | wxLC_SORT_DESCENDING)
548
549// Omitted because (a) too much detail (b) not enough style flags
550// #define wxLC_NO_SCROLL
551// #define wxLC_NO_LABEL_WRAP
552// #define wxLC_OWNERDRAW_FIXED
553// #define wxLC_SHOW_SEL_ALWAYS
554
555/*
556 * wxSpinButton flags
557 */
558
559#define wxSP_VERTICAL 0x0004
560#define wxSP_HORIZONTAL 0x0008
561#define wxSP_ARROW_KEYS 0x0010
562#define wxSP_WRAP 0x0020
563
564/*
cd2df130 565 * wxSplitterWindow flags
c801d85f
KB
566 */
567
568#define wxSP_NOBORDER 0x0000
569#define wxSP_3D 0x0004
570#define wxSP_BORDER 0x0008
571
cd2df130
JS
572/*
573 * wxFrame extra flags
574 */
575
576// No title on taskbar
577#define wxFRAME_TOOL_WINDOW 0x0004
578
c801d85f
KB
579/*
580 * wxTabCtrl flags
581 */
582
583#define wxTAB_MULTILINE 0x0000
584#define wxTAB_RIGHTJUSTIFY 0x0004
585#define wxTAB_FIXEDWIDTH 0x0008
586#define wxTAB_OWNERDRAW 0x0010
587
10b959e3
JS
588// Sorry, I changed my mind about these names...
589#define wxTC_MULTILINE 0x0000
590#define wxTC_RIGHTJUSTIFY 0x0004
591#define wxTC_FIXEDWIDTH 0x0008
592#define wxTC_OWNERDRAW 0x0010
593
c801d85f
KB
594/*
595 * wxStatusBar95 flags
596 */
597
565215b2 598#define wxST_SIZEGRIP 0x0002
c801d85f
KB
599
600/*
601 * GDI descriptions
602 */
603
604enum {
605// Text font families
606 wxDEFAULT = 70,
607 wxDECORATIVE,
608 wxROMAN,
609 wxSCRIPT,
610 wxSWISS,
611 wxMODERN,
612 wxTELETYPE, /* @@@@ */
613
614// Proportional or Fixed width fonts (not yet used)
615 wxVARIABLE = 80,
616 wxFIXED,
617
618 wxNORMAL = 90,
619 wxLIGHT,
620 wxBOLD,
621// Also wxNORMAL for normal (non-italic text)
622 wxITALIC,
623 wxSLANT,
624
625// Pen styles
626 wxSOLID = 100,
627 wxDOT,
628 wxLONG_DASH,
629 wxSHORT_DASH,
630 wxDOT_DASH,
631 wxUSER_DASH,
632
633 wxTRANSPARENT,
634
635// Brush & Pen Stippling. Note that a stippled pen cannot be dashed!!
636// Note also that stippling a Pen IS meaningfull, because a Line is
637// drawn with a Pen, and without any Brush -- and it can be stippled.
638 wxSTIPPLE = 110,
639 wxBDIAGONAL_HATCH,
640 wxCROSSDIAG_HATCH,
641 wxFDIAGONAL_HATCH,
642 wxCROSS_HATCH,
643 wxHORIZONTAL_HATCH,
644 wxVERTICAL_HATCH,
645#define IS_HATCH(s) ((s)>=wxBDIAGONAL_HATCH && (s)<=wxVERTICAL_HATCH)
646
647 wxJOIN_BEVEL = 120,
648 wxJOIN_MITER,
649 wxJOIN_ROUND,
650
651 wxCAP_ROUND = 130,
652 wxCAP_PROJECTING,
653 wxCAP_BUTT
654};
655
656
657// Logical ops
83624f79
RR
658typedef enum
659{
c801d85f
KB
660 wxCLEAR, // 0
661 wxXOR, // src XOR dst
662 wxINVERT, // NOT dst
663 wxOR_REVERSE, // src OR (NOT dst)
664 wxAND_REVERSE,// src AND (NOT dst)
665 wxCOPY, // src
666 wxAND, // src AND dst
667 wxAND_INVERT, // (NOT src) AND dst
668 wxNO_OP, // dst
669 wxNOR, // (NOT src) AND (NOT dst)
670 wxEQUIV, // (NOT src) XOR dst
671 wxSRC_INVERT, // (NOT src)
672 wxOR_INVERT, // (NOT src) OR dst
673 wxNAND, // (NOT src) OR (NOT dst)
674 wxOR, // src OR dst
675 wxSET, // 1
676 wxSRC_OR, // source _bitmap_ OR destination
677 wxSRC_AND // source _bitmap_ AND destination
678} form_ops_t;
679
680// Flood styles
681#define wxFLOOD_SURFACE 1
682#define wxFLOOD_BORDER 2
683
684// Polygon filling mode
685#define wxODDEVEN_RULE 1
686#define wxWINDING_RULE 2
687
688// ToolPanel in wxFrame
689#define wxTOOL_TOP 1
690#define wxTOOL_BOTTOM 2
691#define wxTOOL_LEFT 3
692#define wxTOOL_RIGHT 4
693
694// Dialog specifiers/return values
695
696#define wxOK 0x0001
697#define wxYES_NO 0x0002
698#define wxCANCEL 0x0004
699#define wxYES 0x0008
700#define wxNO 0x0010
701
702#define wxICON_EXCLAMATION 0x0020
703#define wxICON_HAND 0x0040
704#define wxICON_QUESTION 0x0080
705#define wxICON_INFORMATION 0x0100
706
707#define wxICON_STOP wxICON_HAND
708#define wxICON_ASTERISK wxICON_INFORMATION
709#define wxICON_MASK (0x0020|0x0040|0x0080|0x0100)
710
711#define wxCENTRE 0x0200
712#define wxCENTER wxCENTRE
713
714// Possible SetSize flags
715
716// Use internally-calculated width if -1
81d66cf3 717#define wxSIZE_AUTO_WIDTH 0x0001
c801d85f 718// Use internally-calculated height if -1
81d66cf3 719#define wxSIZE_AUTO_HEIGHT 0x0002
c801d85f 720// Use internally-calculated width and height if each is -1
81d66cf3 721#define wxSIZE_AUTO (wxSIZE_AUTO_WIDTH|wxSIZE_AUTO_HEIGHT)
c801d85f
KB
722// Ignore missing (-1) dimensions (use existing).
723// For readability only: test for wxSIZE_AUTO_WIDTH/HEIGHT in code.
81d66cf3 724#define wxSIZE_USE_EXISTING 0x0000
c801d85f 725// Allow -1 as a valid position
81d66cf3
JS
726#define wxSIZE_ALLOW_MINUS_ONE 0x0004
727// Don't do parent client adjustments (for implementation only)
728#define wxSIZE_NO_ADJUSTMENTS 0x0008
c801d85f 729
e3e65dac 730
83624f79
RR
731/* Data format for drag & drop and clipboard operations
732 * numbers as per winuser.h */
e3e65dac
RR
733
734enum wxDataFormat
735{
736 wxDF_TEXT = 1, /* CF_TEXT */
737 wxDF_BITMAP = 2, /* CF_BITMAP */
738 wxDF_METAFILE = 3, /* CF_METAFILEPICT */
739 wxDF_DIB = 8, /* CF_DIB */
740 wxDF_OEMTEXT = 7, /* CF_OEMTEXT */
8b53e5a2
RR
741 wxDF_FILENAME = 15, /* CF_HDROP */
742 wxDF_PRIVATE = 20
e3e65dac 743};
c801d85f 744
83624f79 745/* Virtual keycodes */
e3e65dac 746
83624f79
RR
747enum wxKeyCode
748{
c801d85f
KB
749 WXK_BACK = 8,
750 WXK_TAB = 9,
751 WXK_RETURN = 13,
752 WXK_ESCAPE = 27,
753 WXK_SPACE = 32,
754 WXK_DELETE = 127,
755
756 WXK_START = 300,
757 WXK_LBUTTON,
758 WXK_RBUTTON,
759 WXK_CANCEL,
760 WXK_MBUTTON,
761 WXK_CLEAR,
762 WXK_SHIFT,
763 WXK_CONTROL,
764 WXK_MENU,
765 WXK_PAUSE,
766 WXK_CAPITAL,
83624f79
RR
767 WXK_PRIOR, /* Page up */
768 WXK_NEXT, /* Page down */
c801d85f
KB
769 WXK_END,
770 WXK_HOME,
771 WXK_LEFT,
772 WXK_UP,
773 WXK_RIGHT,
774 WXK_DOWN,
775 WXK_SELECT,
776 WXK_PRINT,
777 WXK_EXECUTE,
778 WXK_SNAPSHOT,
779 WXK_INSERT,
780 WXK_HELP,
781 WXK_NUMPAD0,
782 WXK_NUMPAD1,
783 WXK_NUMPAD2,
784 WXK_NUMPAD3,
785 WXK_NUMPAD4,
786 WXK_NUMPAD5,
787 WXK_NUMPAD6,
788 WXK_NUMPAD7,
789 WXK_NUMPAD8,
790 WXK_NUMPAD9,
791 WXK_MULTIPLY,
792 WXK_ADD,
793 WXK_SEPARATOR,
794 WXK_SUBTRACT,
795 WXK_DECIMAL,
796 WXK_DIVIDE,
797 WXK_F1,
798 WXK_F2,
799 WXK_F3,
800 WXK_F4,
801 WXK_F5,
802 WXK_F6,
803 WXK_F7,
804 WXK_F8,
805 WXK_F9,
806 WXK_F10,
807 WXK_F11,
808 WXK_F12,
809 WXK_F13,
810 WXK_F14,
811 WXK_F15,
812 WXK_F16,
813 WXK_F17,
814 WXK_F18,
815 WXK_F19,
816 WXK_F20,
817 WXK_F21,
818 WXK_F22,
819 WXK_F23,
820 WXK_F24,
821 WXK_NUMLOCK,
822 WXK_SCROLL,
823 WXK_PAGEUP,
824 WXK_PAGEDOWN
825};
826
83624f79
RR
827/* OS mnemonics -- Identify the running OS (useful for Windows)
828 * [Not all platforms are currently available or supported] */
829enum
830{
34138703 831 wxUNKNOWN_PLATFORM,
83624f79
RR
832 wxCURSES, /* Text-only CURSES */
833 wxXVIEW_X, /* Sun's XView OpenLOOK toolkit */
834 wxMOTIF_X, /* OSF Motif 1.x.x */
835 wxCOSE_X, /* OSF Common Desktop Environment */
836 wxNEXTSTEP, /* NeXTStep */
837 wxMACINTOSH, /* Apple System 7 */
838 wxGTK, /* GTK */
839 wxQT, /* Qt */
840 wxGEOS, /* GEOS */
841 wxOS2_PM, /* OS/2 Workplace */
842 wxWINDOWS, /* Windows or WfW */
843 wxPENWINDOWS, /* Windows for Pen Computing */
844 wxWINDOWS_NT, /* Windows NT */
845 wxWIN32S, /* Windows 32S API */
846 wxWIN95, /* Windows 95 */
847 wxWIN386 /* Watcom 32-bit supervisor modus */
c801d85f
KB
848};
849
83624f79 850/* Printing */
c801d85f
KB
851#ifndef wxPORTRAIT
852#define wxPORTRAIT 1
853#define wxLANDSCAPE 2
854#endif
855
83624f79 856/* Standard menu identifiers */
c801d85f
KB
857#define wxID_OPEN 5000
858#define wxID_CLOSE 5001
859#define wxID_NEW 5002
860#define wxID_SAVE 5003
861#define wxID_SAVEAS 5004
862#define wxID_REVERT 5005
863#define wxID_EXIT 5006
864#define wxID_UNDO 5007
865#define wxID_REDO 5008
866#define wxID_HELP 5009
867#define wxID_PRINT 5010
868#define wxID_PRINT_SETUP 5011
869#define wxID_PREVIEW 5012
870#define wxID_ABOUT 5013
871#define wxID_HELP_CONTENTS 5014
872#define wxID_HELP_COMMANDS 5015
873#define wxID_HELP_PROCEDURES 5016
874#define wxID_HELP_CONTEXT 5017
875
876#define wxID_CUT 5030
877#define wxID_COPY 5031
878#define wxID_PASTE 5032
879#define wxID_CLEAR 5033
880#define wxID_FIND 5034
7f555861 881#define wxID_DUPLICATE 5035
77e3eac5 882#define wxID_SELECTALL 5036
c801d85f
KB
883
884#define wxID_FILE1 5050
885#define wxID_FILE2 5051
886#define wxID_FILE3 5052
887#define wxID_FILE4 5053
888#define wxID_FILE5 5054
889#define wxID_FILE6 5055
890#define wxID_FILE7 5056
891#define wxID_FILE8 5057
892#define wxID_FILE9 5058
893
894#define wxID_OK 5100
895#define wxID_CANCEL 5101
896#define wxID_APPLY 5102
897#define wxID_YES 5103
898#define wxID_NO 5104
5de76427 899#define wxID_STATIC 5105
c801d85f 900
dfad0599
JS
901#define wxID_HIGHEST 5999
902
83624f79 903/* Shortcut for easier dialog-unit-to-pixel conversion */
387a3b02 904#define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt)
fd71308f 905
2049ba38 906#ifdef __WXMSW__
83624f79
RR
907/* Stand-ins for Windows types, to avoid
908 * #including all of windows.h */
c801d85f
KB
909typedef unsigned long WXHWND;
910typedef unsigned long WXHANDLE;
911typedef unsigned long WXHICON;
912typedef unsigned long WXHFONT;
913typedef unsigned long WXHMENU;
914typedef unsigned long WXHPEN;
915typedef unsigned long WXHBRUSH;
916typedef unsigned long WXHPALETTE;
917typedef unsigned long WXHCURSOR;
918typedef unsigned long WXHRGN;
57a7b7c1 919typedef unsigned long WXHACCEL;
c801d85f
KB
920typedef unsigned long WXHINSTANCE;
921typedef unsigned long WXHBITMAP;
922typedef unsigned long WXHIMAGELIST;
923typedef unsigned long WXHGLOBAL;
924typedef unsigned long WXHDC;
925typedef unsigned int WXUINT;
926typedef unsigned long WXDWORD;
927typedef unsigned short WXWORD;
928typedef unsigned int WXWPARAM;
929typedef long WXLPARAM;
930typedef unsigned long WXCOLORREF;
c801d85f
KB
931typedef void * WXRGNDATA;
932typedef void * WXMSG;
933typedef unsigned long WXHCONV;
0d8d91a9 934typedef unsigned long WXHKEY;
ef366d32 935typedef unsigned long WXHTREEITEM;
c801d85f
KB
936typedef void * WXDRAWITEMSTRUCT;
937typedef void * WXMEASUREITEMSTRUCT;
938typedef void * WXLPCREATESTRUCT;
14b72bf5
JS
939#ifdef __GNUWIN32__
940typedef int (*WXFARPROC)();
1e6d9499 941#elif defined(__WIN32__)
b039c367 942typedef int (__stdcall *WXFARPROC)();
1e6d9499
JS
943#else
944typedef int (*WXFARPROC)();
14b72bf5 945#endif
c801d85f
KB
946
947#endif
948
589f0e3e 949#ifdef __WXMOTIF__
83624f79 950/* Stand-ins for X/Xt/Motif types */
589f0e3e
JS
951typedef void* WXWindow;
952typedef void* WXWidget;
953typedef void* WXAppContext;
46ccb510 954typedef void* WXColormap;
589f0e3e
JS
955typedef void WXDisplay;
956typedef void WXEvent;
46ccb510 957typedef void* WXCursor;
50414e24 958typedef void* WXPixmap;
dfc54541
JS
959typedef void* WXFontStructPtr;
960typedef void* WXGC;
961typedef void* WXRegion;
e97f20a0 962typedef void* WXFont;
f97c9854
JS
963typedef void* WXImage;
964typedef void* WXCursor;
965typedef void* WXFontList;
589f0e3e
JS
966#endif
967
83624f79
RR
968#ifdef __WXGTK__
969/* Stand-ins for GLIB types */
970typedef int gint;
971typedef unsigned guint;
972typedef unsigned long gulong;
973typedef void* gpointer;
974
975/* Stand-ins for GDK types */
976typedef gulong GdkAtom;
977typedef struct _GdkColor GdkColor;
978typedef struct _GdkColormap GdkColormap;
979typedef struct _GdkFont GdkFont;
980typedef struct _GdkGC GdkGC;
981typedef struct _GdkWindow GdkWindow;
982typedef struct _GdkWindow GdkBitmap;
983typedef struct _GdkWindow GdkPixmap;
984typedef struct _GdkCursor GdkCursor;
985typedef struct _GdkRegion GdkRegion;
986
987/* Stand-ins for GTK types */
988typedef struct _GtkWidget GtkWidget;
989typedef struct _GtkStyle GtkStyle;
990typedef struct _GtkAdjustment GtkAdjustment;
991typedef struct _GtkList GtkList;
992typedef struct _GtkToolbar GtkToolbar;
993typedef struct _GtkNotebook GtkNotebook;
994typedef struct _GtkNotebookPage GtkNotebookPage;
995
996#endif
997
998
c801d85f 999#endif
34138703 1000 // _WX_DEFS_H_