]> git.saurik.com Git - wxWidgets.git/blame - wxPython/src/_defs.i
reSWIGged
[wxWidgets.git] / wxPython / src / _defs.i
CommitLineData
7bf85405
RD
1/////////////////////////////////////////////////////////////////////////////
2// Name: _defs.i
3// Purpose: Definitions and stuff
4//
5// Author: Robin Dunn
6//
7// Created: 6/24/97
8// RCS-ID: $Id$
9// Copyright: (c) 1998 by Total Control Software
10// Licence: wxWindows license
11/////////////////////////////////////////////////////////////////////////////
12
13
ab1f7d2a 14//---------------------------------------------------------------------------
dd9f7fea 15// Globally turn on the autodoc feature
ab1f7d2a 16
dd9f7fea
RD
17%feature("autodoc", "1"); // 0 == no param types, 1 == show param types
18
ab1f7d2a
RD
19//---------------------------------------------------------------------------
20// Tell SWIG to wrap all the wrappers with our thread protection by default
21
22%exception {
23 PyThreadState* __tstate = wxPyBeginAllowThreads();
24 $action
25 wxPyEndAllowThreads(__tstate);
26 if (PyErr_Occurred()) SWIG_fail;
27}
28
29
30// This one can be used to add a check for an existing wxApp before the real
31// work is done. An exception is raised if there isn't one.
32%define MustHaveApp(name)
db9ba246
RD
33%exception name {
34 if (!wxPyCheckForApp()) SWIG_fail;
35 PyThreadState* __tstate = wxPyBeginAllowThreads();
36 $action
37 wxPyEndAllowThreads(__tstate);
38 if (PyErr_Occurred()) SWIG_fail;
39}
ab1f7d2a
RD
40%enddef
41
42
43
7bf85405 44//---------------------------------------------------------------------------
d14a1e28 45// some type definitions to simplify things for SWIG
af309447 46
d14a1e28
RD
47typedef int wxEventType;
48typedef unsigned int size_t;
49typedef unsigned int time_t;
50typedef unsigned char byte;
82bd6167 51typedef unsigned long wxUIntPtr;
d14a1e28 52
dd9f7fea
RD
53#define wxWindowID int
54#define wxCoord int
55#define wxInt32 int
56#define wxUint32 unsigned int
dd9f7fea 57
d14a1e28
RD
58
59//----------------------------------------------------------------------
60// Various SWIG macros and such
61
2b9048c5
RD
62#define %pythonAppend %feature("pythonappend")
63#define %pythonPrepend %feature("pythonprepend")
d14a1e28
RD
64#define %kwargs %feature("kwargs")
65#define %nokwargs %feature("nokwargs")
3ea6e0ec
RD
66#define %noautodoc %feature("noautodoc")
67
d14a1e28 68
2b9048c5
RD
69//#ifndef %shadow
70//#define %shadow %insert("shadow")
71//#endif
d14a1e28
RD
72
73#ifndef %pythoncode
74#define %pythoncode %insert("python")
dd9f7fea 75#endif
d14a1e28
RD
76
77#define WXUNUSED(x) x
78
79
80// Given the name of a wxChar (or wxString) constant in C++, make
81// a static wxString for wxPython, and also let SWIG wrap it.
82%define MAKE_CONST_WXSTRING(strname)
83 %{ static const wxString wxPy##strname(wx##strname); %}
84 %immutable;
1b8c7ba6
RD
85 %rename(strname) wxPy##strname;
86 const wxString wxPy##strname;
d14a1e28
RD
87 %mutable;
88%enddef
89
b2dc1044 90%define MAKE_CONST_WXSTRING2(strname, val)
089142a5 91 %{ static const wxString wxPy##strname(val); %}
b2dc1044 92 %immutable;
1b8c7ba6
RD
93 %rename(strname) wxPy##strname;
94 const wxString wxPy##strname;
b2dc1044
RD
95 %mutable;
96%enddef
97
98%define MAKE_CONST_WXSTRING_NOSWIG(strname)
99 %{ static const wxString wxPy##strname(wx##strname); %}
100%enddef
b1462dfa 101
d14a1e28
RD
102// Generate code in the module init for the event types, since they may not be
103// initialized yet when they are used in the static swig_const_table.
104%typemap(consttab) wxEventType; // TODO: how to prevent code inserted into the consttab?
105%typemap(constcode) wxEventType "PyDict_SetItemString(d, \"$symname\", PyInt_FromLong($value));";
106
107
dd9f7fea 108
d07d2bc9
RD
109//----------------------------------------------------------------------
110// Macros for the docstring and autodoc features of SWIG. These will
111// help make the code look more readable, and pretty, as well as help
112// reduce typing in some cases.
dd9f7fea
RD
113
114// Set the docsring for the given full or partial declaration
d07d2bc9
RD
115#ifdef _DO_FULL_DOCS
116 %define DocStr(decl, docstr, details)
117 %feature("docstring") decl docstr details;
118 %enddef
119#else
120 %define DocStr(decl, docstr, details)
121 %feature("docstring") decl docstr;
122 %enddef
123#endif
124
dd9f7fea
RD
125
126// Set the autodoc string for a full or partial declaration
b2dc1044
RD
127%define DocA(decl, astr)
128 %feature("autodoc") decl astr;
129%enddef
dd9f7fea 130
dd9f7fea 131
d07d2bc9
RD
132// Set both the autodoc and docstring for a full or partial declaration
133#ifdef _DO_FULL_DOCS
134 %define DocAStr(decl, astr, docstr, details)
135 %feature("autodoc") decl astr;
136 %feature("docstring") decl docstr details
137 %enddef
138#else
139 %define DocAStr(decl, astr, docstr, details)
140 %feature("autodoc") decl astr;
141 %feature("docstring") decl docstr
142 %enddef
143#endif
dd9f7fea 144
d07d2bc9 145
dd9f7fea
RD
146
147
148// Set the docstring for a decl and then define the decl too. Must use the
149// full declaration of the item.
d07d2bc9
RD
150#ifdef _DO_FULL_DOCS
151 %define DocDeclStr(type, decl, docstr, details)
152 %feature("docstring") decl docstr details;
153 type decl
154 %enddef
155#else
156 %define DocDeclStr(type, decl, docstr, details)
157 %feature("docstring") decl docstr;
158 type decl
159 %enddef
160#endif
dd9f7fea 161
d07d2bc9
RD
162
163
dd9f7fea 164// As above, but also give the decl a new %name
d07d2bc9
RD
165#ifdef _DO_FULL_DOCS
166 %define DocDeclStrName(type, decl, docstr, details, newname)
167 %feature("docstring") decl docstr details;
1b8c7ba6
RD
168 %rename(newname) decl;
169 type decl
d07d2bc9
RD
170 %enddef
171#else
172 %define DocDeclStrName(type, decl, docstr, details, newname)
173 %feature("docstring") decl docstr;
1b8c7ba6
RD
174 %rename(newname) decl;
175 type decl
d07d2bc9
RD
176 %enddef
177#endif
178
dd9f7fea
RD
179
180// Set the autodoc string for a decl and then define the decl too. Must use the
181// full declaration of the item.
182%define DocDeclA(type, decl, astr)
183 %feature("autodoc") decl astr;
184 type decl
185%enddef
186
187// As above, but also give the decl a new %name
188%define DocDeclAName(type, decl, astr, newname)
189 %feature("autodoc") decl astr;
1b8c7ba6
RD
190 %rename(newname) decl;
191 type decl
dd9f7fea
RD
192%enddef
193
194
195
196// Set the autodoc and the docstring for a decl and then define the decl too.
197// Must use the full declaration of the item.
d07d2bc9 198#ifdef _DO_FULL_DOCS
a6ef7362 199 %define DocDeclAStr(type, decl, astr, docstr, details)
d07d2bc9
RD
200 %feature("autodoc") decl astr;
201 %feature("docstring") decl docstr details;
202 type decl
203 %enddef
204#else
a6ef7362 205 %define DocDeclAStr(type, decl, astr, docstr, details)
d07d2bc9
RD
206 %feature("autodoc") decl astr;
207 %feature("docstring") decl docstr;
208 type decl
209 %enddef
210#endif
dd9f7fea 211
d07d2bc9 212
dd9f7fea 213// As above, but also give the decl a new %name
d07d2bc9
RD
214#ifdef _DO_FULL_DOCS
215 %define DocDeclAStrName(type, decl, astr, docstr, details, newname)
216 %feature("autodoc") decl astr;
217 %feature("docstring") decl docstr details;
1b8c7ba6
RD
218 %rename(newname) decl;
219 type decl
d07d2bc9
RD
220 %enddef
221#else
222 %define DocDeclAStrName(type, decl, astr, docstr, details, newname)
223 %feature("autodoc") decl astr;
224 %feature("docstring") decl docstr;
1b8c7ba6
RD
225 %rename(newname) decl;
226 type decl
d07d2bc9
RD
227 %enddef
228#endif
dd9f7fea
RD
229
230
231
232// Set the docstring for a constructor decl and then define the decl too.
233// Must use the full declaration of the item.
d07d2bc9
RD
234#ifdef _DO_FULL_DOCS
235 %define DocCtorStr(decl, docstr, details)
236 %feature("docstring") decl docstr details;
237 decl
238 %enddef
239#else
240 %define DocCtorStr(decl, docstr, details)
241 %feature("docstring") decl docstr;
242 decl
243 %enddef
244#endif
dd9f7fea 245
d07d2bc9 246
dd9f7fea 247// As above, but also give the decl a new %name
d07d2bc9
RD
248#ifdef _DO_FULL_DOCS
249 %define DocCtorStrName(decl, docstr, details, newname)
250 %feature("docstring") decl docstr details;
1b8c7ba6
RD
251 %rename(newname) decl;
252 decl
d07d2bc9
RD
253 %enddef
254#else
255 %define DocCtorStrName(decl, docstr, details, newname)
256 %feature("docstring") decl docstr;
1b8c7ba6
RD
257 %rename(newname) decl;
258 decl
d07d2bc9
RD
259 %enddef
260#endif
dd9f7fea 261
d07d2bc9
RD
262
263
264// Set the autodoc string for a constructor decl and then define the decl too.
265// Must use the full declaration of the item.
dd9f7fea
RD
266%define DocCtorA(decl, astr)
267 %feature("autodoc") decl astr;
268 decl
269%enddef
270
271// As above, but also give the decl a new %name
d07d2bc9 272%define DocCtorAName(decl, astr, newname)
dd9f7fea 273 %feature("autodoc") decl astr;
1b8c7ba6
RD
274 %rename(newname) decl;
275 decl
dd9f7fea
RD
276%enddef
277
278
279
d07d2bc9
RD
280// Set the autodoc and the docstring for a constructor decl and then define
281// the decl too. Must use the full declaration of the item.
282#ifdef _DO_FULL_DOCS
283 %define DocCtorAStr(decl, astr, docstr, details)
284 %feature("autodoc") decl astr;
285 %feature("docstring") decl docstr details;
286 decl
287 %enddef
288#else
289 %define DocCtorAStr(decl, astr, docstr, details)
290 %feature("autodoc") decl astr;
291 %feature("docstring") decl docstr;
292 decl
293 %enddef
294#endif
dd9f7fea 295
dd9f7fea 296
d07d2bc9
RD
297
298// As above, but also give the decl a new %name
299#ifdef _DO_FULL_DOCS
300 %define DocCtorAStrName(decl, astr, docstr, details, newname)
301 %feature("autodoc") decl astr;
302 %feature("docstring") decl docstr details;
1b8c7ba6
RD
303 %rename(newname) decl;
304 decl
d07d2bc9
RD
305 %enddef
306#else
307 %define DocCtorAStrName(decl, astr, docstr, details, newname)
308 %feature("autodoc") decl astr;
309 %feature("docstring") decl docstr;
1b8c7ba6
RD
310 %rename(newname) decl;
311 decl
d07d2bc9
RD
312 %enddef
313#endif
1e0c8722 314
d07d2bc9 315
dd9f7fea 316
d14a1e28
RD
317%define %newgroup
318%pythoncode {
319%#---------------------------------------------------------------------------
dd9f7fea 320}
d14a1e28 321%enddef
7bf85405 322
1b8c7ba6
RD
323
324// A set of macros to make using %rename easier, since %name has been
325// deprecated...
326%define %Rename(newname, type, decl)
327 %rename(newname) decl;
328 type decl
329%enddef
330
331%define %RenameCtor(newname, decl)
332 %rename(newname) decl;
333 decl
334%enddef
335
336
64e8a1f0
RD
337//---------------------------------------------------------------------------
338// Forward declarations and %renames for some classes, so the autodoc strings
339// will be able to use the right types even when the real class declaration is
3ea6e0ec 340// not in the module being processed or seen by %import's.
64e8a1f0
RD
341
342#ifdef BUILDING_RENAMERS
343 #define FORWARD_DECLARE(wxName, Name)
344#else
345 %define FORWARD_DECLARE(wxName, Name)
346 %rename(Name) wxName;
347 class wxName;
348 %enddef
349#endif
350
b2dc1044
RD
351FORWARD_DECLARE(wxString, String);
352FORWARD_DECLARE(wxBitmap, Bitmap);
353FORWARD_DECLARE(wxDateTime, DateTime);
354FORWARD_DECLARE(wxInputStream, InputStream);
355FORWARD_DECLARE(wxDC, DC);
356FORWARD_DECLARE(wxCursor, Cursor);
357FORWARD_DECLARE(wxRegion, Region);
358FORWARD_DECLARE(wxColour, Colour);
359FORWARD_DECLARE(wxFont, Font);
360FORWARD_DECLARE(wxCaret, Caret);
361FORWARD_DECLARE(wxToolTip, ToolTip);
d7466b1d 362FORWARD_DECLARE(wxPyDropTarget, DropTarget);
b2dc1044
RD
363FORWARD_DECLARE(wxImageList, ImageList);
364FORWARD_DECLARE(wxMemoryDC, MemoryDC);
365FORWARD_DECLARE(wxHtmlTagHandler, HtmlTagHandler);
366FORWARD_DECLARE(wxConfigBase, ConfigBase);
367FORWARD_DECLARE(wxIcon, Icon);
3ea6e0ec 368FORWARD_DECLARE(wxStaticBox, StaticBox);
b2dc1044 369
64e8a1f0 370
7bf85405
RD
371//---------------------------------------------------------------------------
372
aeee37c3
RD
373%{
374#if !WXWIN_COMPATIBILITY_2_4
375 #define wxHIDE_READONLY 0
376#endif
377%}
378
379
7bf85405
RD
380// General numeric #define's and etc. Making them all enums makes SWIG use the
381// real macro when making the Python Int
382
383enum {
d14a1e28
RD
384// wxMAJOR_VERSION,
385// wxMINOR_VERSION,
386// wxRELEASE_NUMBER,
7bf85405 387
08127323 388 wxNOT_FOUND,
7bf85405
RD
389
390 wxVSCROLL,
391 wxHSCROLL,
392 wxCAPTION,
393 wxDOUBLE_BORDER,
394 wxSUNKEN_BORDER,
395 wxRAISED_BORDER,
396 wxBORDER,
397 wxSIMPLE_BORDER,
398 wxSTATIC_BORDER,
399 wxTRANSPARENT_WINDOW,
400 wxNO_BORDER,
9cbf6f6e 401
7bf85405 402 wxTAB_TRAVERSAL,
1afc06c2 403 wxWANTS_CHARS,
0122b7e3 404 wxPOPUP_WINDOW,
7bf85405 405 wxCENTER_FRAME,
1afc06c2
RD
406 wxCENTRE_ON_SCREEN,
407 wxCENTER_ON_SCREEN,
408
1afc06c2
RD
409 wxED_CLIENT_MARGIN,
410 wxED_BUTTONS_BOTTOM,
411 wxED_BUTTONS_RIGHT,
412 wxED_STATIC_LINE,
413 wxEXT_DIALOG_STYLE,
bb0054cd 414
08127323 415 wxCLIP_CHILDREN,
edf2f43e 416 wxCLIP_SIBLINGS,
b8b8dda7 417
6cffbf02
RD
418 wxALWAYS_SHOW_SB,
419
7bf85405
RD
420 wxRETAINED,
421 wxBACKINGSTORE,
b96c7a38 422
7bf85405
RD
423 wxCOLOURED,
424 wxFIXED_LENGTH,
1b62f00d 425
7bf85405
RD
426 wxLB_NEEDED_SB,
427 wxLB_ALWAYS_SB,
428 wxLB_SORT,
429 wxLB_SINGLE,
430 wxLB_MULTIPLE,
431 wxLB_EXTENDED,
432 wxLB_OWNERDRAW,
433 wxLB_HSCROLL,
434 wxPROCESS_ENTER,
435 wxPASSWORD,
b1e930a5 436
7bf85405
RD
437 wxCB_SIMPLE,
438 wxCB_DROPDOWN,
439 wxCB_SORT,
440 wxCB_READONLY,
441 wxRA_HORIZONTAL,
442 wxRA_VERTICAL,
ed175610
RD
443 wxRA_SPECIFY_ROWS,
444 wxRA_SPECIFY_COLS,
8815349a 445 wxRA_USE_CHECKBOX,
7bf85405 446 wxRB_GROUP,
1e4a197e 447 wxRB_SINGLE,
7bf85405
RD
448 wxSB_HORIZONTAL,
449 wxSB_VERTICAL,
8815349a 450 wxRB_USE_CHECKBOX,
cf694132 451 wxST_SIZEGRIP,
2abc0a0f 452 wxST_NO_AUTORESIZE,
203c2f9a 453
7bf85405
RD
454 wxFLOOD_SURFACE,
455 wxFLOOD_BORDER,
456 wxODDEVEN_RULE,
457 wxWINDING_RULE,
458 wxTOOL_TOP,
459 wxTOOL_BOTTOM,
460 wxTOOL_LEFT,
461 wxTOOL_RIGHT,
462 wxOK,
463 wxYES_NO,
464 wxCANCEL,
465 wxYES,
466 wxNO,
1afc06c2
RD
467 wxNO_DEFAULT,
468 wxYES_DEFAULT,
7bf85405
RD
469 wxICON_EXCLAMATION,
470 wxICON_HAND,
471 wxICON_QUESTION,
472 wxICON_INFORMATION,
473 wxICON_STOP,
474 wxICON_ASTERISK,
475 wxICON_MASK,
1afc06c2
RD
476 wxICON_WARNING,
477 wxICON_ERROR,
478
479 wxFORWARD,
480 wxBACKWARD,
481 wxRESET,
482 wxHELP,
483 wxMORE,
484 wxSETUP,
485
f3d9dc1d 486
7bf85405
RD
487 wxSIZE_AUTO_WIDTH,
488 wxSIZE_AUTO_HEIGHT,
489 wxSIZE_AUTO,
490 wxSIZE_USE_EXISTING,
491 wxSIZE_ALLOW_MINUS_ONE,
7bf85405
RD
492 wxPORTRAIT,
493 wxLANDSCAPE,
bb0054cd
RD
494 wxPRINT_QUALITY_HIGH,
495 wxPRINT_QUALITY_MEDIUM,
496 wxPRINT_QUALITY_LOW,
497 wxPRINT_QUALITY_DRAFT,
26e335b8 498
3eb221f6
RD
499 wxID_ANY,
500 wxID_SEPARATOR,
501
d14a1e28 502 wxID_LOWEST,
7bf85405
RD
503 wxID_OPEN,
504 wxID_CLOSE,
505 wxID_NEW,
506 wxID_SAVE,
507 wxID_SAVEAS,
508 wxID_REVERT,
509 wxID_EXIT,
510 wxID_UNDO,
511 wxID_REDO,
512 wxID_HELP,
513 wxID_PRINT,
514 wxID_PRINT_SETUP,
515 wxID_PREVIEW,
516 wxID_ABOUT,
517 wxID_HELP_CONTENTS,
518 wxID_HELP_COMMANDS,
519 wxID_HELP_PROCEDURES,
520 wxID_HELP_CONTEXT,
b5a5d647 521 wxID_CLOSE_ALL,
1a10a058 522 wxID_PREFERENCES,
26e335b8 523
7bf85405
RD
524 wxID_CUT,
525 wxID_COPY,
526 wxID_PASTE,
527 wxID_CLEAR,
528 wxID_FIND,
d56cebe7
RD
529 wxID_DUPLICATE,
530 wxID_SELECTALL,
26e335b8 531
3ef86e32
RD
532 wxID_DELETE,
533 wxID_REPLACE,
534 wxID_REPLACE_ALL,
535 wxID_PROPERTIES,
536
537 wxID_VIEW_DETAILS,
538 wxID_VIEW_LARGEICONS,
539 wxID_VIEW_SMALLICONS,
540 wxID_VIEW_LIST,
541 wxID_VIEW_SORTDATE,
542 wxID_VIEW_SORTNAME,
543 wxID_VIEW_SORTSIZE,
544 wxID_VIEW_SORTTYPE,
545
7bf85405
RD
546 wxID_FILE1,
547 wxID_FILE2,
548 wxID_FILE3,
549 wxID_FILE4,
550 wxID_FILE5,
551 wxID_FILE6,
552 wxID_FILE7,
553 wxID_FILE8,
554 wxID_FILE9,
26e335b8 555
7bf85405
RD
556 wxID_OK,
557 wxID_CANCEL,
558 wxID_APPLY,
559 wxID_YES,
560 wxID_NO,
cf694132 561 wxID_STATIC,
f3d9dc1d
RD
562 wxID_FORWARD,
563 wxID_BACKWARD,
26e335b8 564 wxID_DEFAULT,
f3d9dc1d 565 wxID_MORE,
26e335b8
RD
566 wxID_SETUP,
567 wxID_RESET,
568 wxID_CONTEXT_HELP,
569 wxID_YESTOALL,
570 wxID_NOTOALL,
571 wxID_ABORT,
572 wxID_RETRY,
573 wxID_IGNORE,
f3d9dc1d 574
1a1ed526
RD
575 wxID_ADD,
576 wxID_REMOVE,
577
578 wxID_UP,
579 wxID_DOWN,
580 wxID_HOME,
581 wxID_REFRESH,
582 wxID_STOP,
583 wxID_INDEX,
584
585 wxID_BOLD,
586 wxID_ITALIC,
587 wxID_JUSTIFY_CENTER,
588 wxID_JUSTIFY_FILL,
589 wxID_JUSTIFY_RIGHT,
590 wxID_JUSTIFY_LEFT,
591 wxID_UNDERLINE,
592 wxID_INDENT,
593 wxID_UNINDENT,
594 wxID_ZOOM_100,
595 wxID_ZOOM_FIT,
596 wxID_ZOOM_IN,
597 wxID_ZOOM_OUT,
598 wxID_UNDELETE,
599 wxID_REVERT_TO_SAVED,
600
d14a1e28 601 wxID_HIGHEST,
dd9f7fea 602
7bf85405
RD
603 wxOPEN,
604 wxSAVE,
605 wxHIDE_READONLY,
606 wxOVERWRITE_PROMPT,
2abc0a0f 607 wxFILE_MUST_EXIST,
f6bcfd97 608 wxMULTIPLE,
1b62f00d 609 wxCHANGE_DIR,
7bf85405
RD
610
611 wxACCEL_ALT,
612 wxACCEL_CTRL,
613 wxACCEL_SHIFT,
f6bcfd97 614 wxACCEL_NORMAL,
bb0054cd
RD
615
616 wxPD_AUTO_HIDE,
617 wxPD_APP_MODAL,
618 wxPD_CAN_ABORT,
a08cbc01
RD
619 wxPD_ELAPSED_TIME,
620 wxPD_ESTIMATED_TIME,
621 wxPD_REMAINING_TIME,
191dea6d
RD
622 wxPD_SMOOTH,
623 wxPD_CAN_SKIP,
bb0054cd 624
7cdaed0b 625 wxDD_NEW_DIR_BUTTON,
daa3eac9 626 wxDD_DEFAULT_STYLE,
7cdaed0b 627
8bf5d46e 628 wxMENU_TEAROFF,
1afc06c2 629 wxMB_DOCKABLE,
8bf5d46e 630 wxNO_FULL_REPAINT_ON_RESIZE,
6a8b9da4
RD
631 wxFULL_REPAINT_ON_RESIZE,
632
1afc06c2
RD
633 wxLI_HORIZONTAL,
634 wxLI_VERTICAL,
635
d1679124 636 wxWS_EX_VALIDATE_RECURSIVELY,
0122b7e3 637 wxWS_EX_BLOCK_EVENTS,
78e8819c 638 wxWS_EX_TRANSIENT,
ecc08ead 639
3ef86e32
RD
640 wxWS_EX_THEMED_BACKGROUND,
641 wxWS_EX_PROCESS_IDLE,
642 wxWS_EX_PROCESS_UI_UPDATES,
643
644
ecc08ead
RD
645 // Mapping modes (as per Windows)
646 wxMM_TEXT,
647 wxMM_LOMETRIC,
648 wxMM_HIMETRIC,
649 wxMM_LOENGLISH,
650 wxMM_HIENGLISH,
651 wxMM_TWIPS,
652 wxMM_ISOTROPIC,
653 wxMM_ANISOTROPIC,
654 wxMM_POINTS,
655 wxMM_METRIC,
656
3eb221f6 657
1e4a197e
RD
658 // It looks like wxTabCtrl may rise from the dead. Uncomment these if
659 // it gets an implementation for all platforms...
660// wxTC_RIGHTJUSTIFY,
661// wxTC_FIXEDWIDTH,
662// wxTC_TOP,
663// wxTC_LEFT,
664// wxTC_RIGHT,
665// wxTC_BOTTOM,
666// wxTC_MULTILINE,
667// wxTC_OWNERDRAW,
668
7bf85405
RD
669};
670
671
69d81895
RD
672#ifdef __WXGTK__
673#define wxDEFAULT_STATUSBAR_STYLE wxST_SIZEGRIP|wxFULL_REPAINT_ON_RESIZE
674#else
675#define wxDEFAULT_STATUSBAR_STYLE wxST_SIZEGRIP
676#endif
677
678
d14a1e28
RD
679
680enum wxGeometryCentre
681{
682 wxCENTRE = 0x0001,
683 wxCENTER = wxCENTRE
684};
685
686
687enum wxOrientation
688{
689 wxHORIZONTAL,
690 wxVERTICAL,
691 wxBOTH
692};
693
694enum wxDirection
695{
696 wxLEFT,
697 wxRIGHT,
698 wxUP,
699 wxDOWN,
700
701 wxTOP,
702 wxBOTTOM,
703
704 wxNORTH,
705 wxSOUTH,
706 wxWEST,
707 wxEAST,
708
709 wxALL
710};
711
712enum wxAlignment
713{
714 wxALIGN_NOT,
715 wxALIGN_CENTER_HORIZONTAL,
716 wxALIGN_CENTRE_HORIZONTAL,
717 wxALIGN_LEFT,
718 wxALIGN_TOP,
719 wxALIGN_RIGHT,
720 wxALIGN_BOTTOM,
721 wxALIGN_CENTER_VERTICAL,
722 wxALIGN_CENTRE_VERTICAL,
723
724 wxALIGN_CENTER,
725 wxALIGN_CENTRE,
726
727 wxALIGN_MASK,
728};
729
730enum wxStretch
731{
732 wxSTRETCH_NOT,
733 wxSHRINK,
734 wxGROW,
735 wxEXPAND,
736 wxSHAPED,
f52e0cf4 737 wxFIXED_MINSIZE,
d14a1e28 738 wxTILE,
33e10b88 739 wxADJUST_MINSIZE,
d14a1e28
RD
740};
741
742
ebf4302c
RD
743enum wxBorder
744{
745 wxBORDER_DEFAULT,
746 wxBORDER_NONE,
747 wxBORDER_STATIC,
748 wxBORDER_SIMPLE,
749 wxBORDER_RAISED,
750 wxBORDER_SUNKEN,
751 wxBORDER_DOUBLE,
752 wxBORDER_MASK,
753};
754
755
1a1ed526
RD
756enum wxBackgroundStyle
757{
758 wxBG_STYLE_SYSTEM,
759 wxBG_STYLE_COLOUR,
760 wxBG_STYLE_CUSTOM
761};
762
763
7bf85405
RD
764enum {
765 wxDEFAULT ,
766 wxDECORATIVE,
767 wxROMAN,
768 wxSCRIPT,
769 wxSWISS,
770 wxMODERN,
771 wxTELETYPE,
772 wxVARIABLE,
773 wxFIXED,
774 wxNORMAL,
775 wxLIGHT,
776 wxBOLD,
777 wxITALIC,
778 wxSLANT,
779 wxSOLID,
780 wxDOT,
781 wxLONG_DASH,
782 wxSHORT_DASH,
783 wxDOT_DASH,
784 wxUSER_DASH,
785 wxTRANSPARENT,
786 wxSTIPPLE,
787 wxBDIAGONAL_HATCH,
788 wxCROSSDIAG_HATCH,
789 wxFDIAGONAL_HATCH,
790 wxCROSS_HATCH,
791 wxHORIZONTAL_HATCH,
792 wxVERTICAL_HATCH,
793 wxJOIN_BEVEL,
794 wxJOIN_MITER,
795 wxJOIN_ROUND,
796 wxCAP_ROUND,
797 wxCAP_PROJECTING,
798 wxCAP_BUTT
799};
800
801typedef enum {
802 wxCLEAR, // 0
803 wxXOR, // src XOR dst
804 wxINVERT, // NOT dst
805 wxOR_REVERSE, // src OR (NOT dst)
806 wxAND_REVERSE,// src AND (NOT dst)
807 wxCOPY, // src
808 wxAND, // src AND dst
809 wxAND_INVERT, // (NOT src) AND dst
810 wxNO_OP, // dst
811 wxNOR, // (NOT src) AND (NOT dst)
812 wxEQUIV, // (NOT src) XOR dst
813 wxSRC_INVERT, // (NOT src)
814 wxOR_INVERT, // (NOT src) OR dst
815 wxNAND, // (NOT src) OR (NOT dst)
816 wxOR, // src OR dst
817 wxSET, // 1
26b9cf27
RD
818// wxSRC_OR, // source _bitmap_ OR destination
819// wxSRC_AND // source _bitmap_ AND destination
7bf85405
RD
820} form_ops_t;
821
65fe3842
RD
822enum wxKeyCode {
823 WXK_BACK = 8,
824 WXK_TAB = 9,
825 WXK_RETURN = 13,
826 WXK_ESCAPE = 27,
827 WXK_SPACE = 32,
828 WXK_DELETE = 127,
829
830 WXK_START = 300,
831 WXK_LBUTTON,
832 WXK_RBUTTON,
833 WXK_CANCEL,
834 WXK_MBUTTON,
835 WXK_CLEAR,
836 WXK_SHIFT,
837 WXK_ALT,
838 WXK_CONTROL,
839 WXK_MENU,
840 WXK_PAUSE,
841 WXK_CAPITAL,
842 WXK_PRIOR, /* Page up */
843 WXK_NEXT, /* Page down */
844 WXK_END,
845 WXK_HOME,
846 WXK_LEFT,
847 WXK_UP,
848 WXK_RIGHT,
849 WXK_DOWN,
850 WXK_SELECT,
851 WXK_PRINT,
852 WXK_EXECUTE,
853 WXK_SNAPSHOT,
854 WXK_INSERT,
855 WXK_HELP,
856 WXK_NUMPAD0,
857 WXK_NUMPAD1,
858 WXK_NUMPAD2,
859 WXK_NUMPAD3,
860 WXK_NUMPAD4,
861 WXK_NUMPAD5,
862 WXK_NUMPAD6,
863 WXK_NUMPAD7,
864 WXK_NUMPAD8,
865 WXK_NUMPAD9,
866 WXK_MULTIPLY,
867 WXK_ADD,
868 WXK_SEPARATOR,
869 WXK_SUBTRACT,
870 WXK_DECIMAL,
871 WXK_DIVIDE,
872 WXK_F1,
873 WXK_F2,
874 WXK_F3,
875 WXK_F4,
876 WXK_F5,
877 WXK_F6,
878 WXK_F7,
879 WXK_F8,
880 WXK_F9,
881 WXK_F10,
882 WXK_F11,
883 WXK_F12,
884 WXK_F13,
885 WXK_F14,
886 WXK_F15,
887 WXK_F16,
888 WXK_F17,
889 WXK_F18,
890 WXK_F19,
891 WXK_F20,
892 WXK_F21,
893 WXK_F22,
894 WXK_F23,
895 WXK_F24,
896 WXK_NUMLOCK,
897 WXK_SCROLL,
898 WXK_PAGEUP,
899 WXK_PAGEDOWN,
900
901 WXK_NUMPAD_SPACE,
902 WXK_NUMPAD_TAB,
903 WXK_NUMPAD_ENTER,
904 WXK_NUMPAD_F1,
905 WXK_NUMPAD_F2,
906 WXK_NUMPAD_F3,
907 WXK_NUMPAD_F4,
908 WXK_NUMPAD_HOME,
909 WXK_NUMPAD_LEFT,
910 WXK_NUMPAD_UP,
911 WXK_NUMPAD_RIGHT,
912 WXK_NUMPAD_DOWN,
913 WXK_NUMPAD_PRIOR,
914 WXK_NUMPAD_PAGEUP,
915 WXK_NUMPAD_NEXT,
916 WXK_NUMPAD_PAGEDOWN,
917 WXK_NUMPAD_END,
918 WXK_NUMPAD_BEGIN,
919 WXK_NUMPAD_INSERT,
920 WXK_NUMPAD_DELETE,
921 WXK_NUMPAD_EQUAL,
922 WXK_NUMPAD_MULTIPLY,
923 WXK_NUMPAD_ADD,
924 WXK_NUMPAD_SEPARATOR,
925 WXK_NUMPAD_SUBTRACT,
926 WXK_NUMPAD_DECIMAL,
9cbf6f6e
RD
927 WXK_NUMPAD_DIVIDE,
928
929 WXK_WINDOWS_LEFT,
930 WXK_WINDOWS_RIGHT,
931 WXK_WINDOWS_MENU
65fe3842 932
7bf85405
RD
933};
934
0a651eb8 935
cf694132
RD
936
937typedef enum {
938 wxPAPER_NONE, // Use specific dimensions
939 wxPAPER_LETTER, // Letter, 8 1/2 by 11 inches
940 wxPAPER_LEGAL, // Legal, 8 1/2 by 14 inches
941 wxPAPER_A4, // A4 Sheet, 210 by 297 millimeters
942 wxPAPER_CSHEET, // C Sheet, 17 by 22 inches
943 wxPAPER_DSHEET, // D Sheet, 22 by 34 inches
944 wxPAPER_ESHEET, // E Sheet, 34 by 44 inches
945 wxPAPER_LETTERSMALL, // Letter Small, 8 1/2 by 11 inches
946 wxPAPER_TABLOID, // Tabloid, 11 by 17 inches
947 wxPAPER_LEDGER, // Ledger, 17 by 11 inches
948 wxPAPER_STATEMENT, // Statement, 5 1/2 by 8 1/2 inches
949 wxPAPER_EXECUTIVE, // Executive, 7 1/4 by 10 1/2 inches
950 wxPAPER_A3, // A3 sheet, 297 by 420 millimeters
951 wxPAPER_A4SMALL, // A4 small sheet, 210 by 297 millimeters
952 wxPAPER_A5, // A5 sheet, 148 by 210 millimeters
953 wxPAPER_B4, // B4 sheet, 250 by 354 millimeters
954 wxPAPER_B5, // B5 sheet, 182-by-257-millimeter paper
955 wxPAPER_FOLIO, // Folio, 8-1/2-by-13-inch paper
956 wxPAPER_QUARTO, // Quarto, 215-by-275-millimeter paper
957 wxPAPER_10X14, // 10-by-14-inch sheet
958 wxPAPER_11X17, // 11-by-17-inch sheet
959 wxPAPER_NOTE, // Note, 8 1/2 by 11 inches
960 wxPAPER_ENV_9, // #9 Envelope, 3 7/8 by 8 7/8 inches
961 wxPAPER_ENV_10, // #10 Envelope, 4 1/8 by 9 1/2 inches
962 wxPAPER_ENV_11, // #11 Envelope, 4 1/2 by 10 3/8 inches
963 wxPAPER_ENV_12, // #12 Envelope, 4 3/4 by 11 inches
964 wxPAPER_ENV_14, // #14 Envelope, 5 by 11 1/2 inches
965 wxPAPER_ENV_DL, // DL Envelope, 110 by 220 millimeters
966 wxPAPER_ENV_C5, // C5 Envelope, 162 by 229 millimeters
967 wxPAPER_ENV_C3, // C3 Envelope, 324 by 458 millimeters
968 wxPAPER_ENV_C4, // C4 Envelope, 229 by 324 millimeters
969 wxPAPER_ENV_C6, // C6 Envelope, 114 by 162 millimeters
970 wxPAPER_ENV_C65, // C65 Envelope, 114 by 229 millimeters
971 wxPAPER_ENV_B4, // B4 Envelope, 250 by 353 millimeters
972 wxPAPER_ENV_B5, // B5 Envelope, 176 by 250 millimeters
973 wxPAPER_ENV_B6, // B6 Envelope, 176 by 125 millimeters
974 wxPAPER_ENV_ITALY, // Italy Envelope, 110 by 230 millimeters
975 wxPAPER_ENV_MONARCH, // Monarch Envelope, 3 7/8 by 7 1/2 inches
976 wxPAPER_ENV_PERSONAL, // 6 3/4 Envelope, 3 5/8 by 6 1/2 inches
977 wxPAPER_FANFOLD_US, // US Std Fanfold, 14 7/8 by 11 inches
978 wxPAPER_FANFOLD_STD_GERMAN, // German Std Fanfold, 8 1/2 by 12 inches
979 wxPAPER_FANFOLD_LGL_GERMAN, // German Legal Fanfold, 8 1/2 by 13 inches
980
981 wxPAPER_ISO_B4, // B4 (ISO) 250 x 353 mm
982 wxPAPER_JAPANESE_POSTCARD, // Japanese Postcard 100 x 148 mm
983 wxPAPER_9X11, // 9 x 11 in
984 wxPAPER_10X11, // 10 x 11 in
985 wxPAPER_15X11, // 15 x 11 in
986 wxPAPER_ENV_INVITE, // Envelope Invite 220 x 220 mm
987 wxPAPER_LETTER_EXTRA, // Letter Extra 9 \275 x 12 in
988 wxPAPER_LEGAL_EXTRA, // Legal Extra 9 \275 x 15 in
989 wxPAPER_TABLOID_EXTRA, // Tabloid Extra 11.69 x 18 in
990 wxPAPER_A4_EXTRA, // A4 Extra 9.27 x 12.69 in
991 wxPAPER_LETTER_TRANSVERSE, // Letter Transverse 8 \275 x 11 in
992 wxPAPER_A4_TRANSVERSE, // A4 Transverse 210 x 297 mm
993 wxPAPER_LETTER_EXTRA_TRANSVERSE, // Letter Extra Transverse 9\275 x 12 in
994 wxPAPER_A_PLUS, // SuperA/SuperA/A4 227 x 356 mm
995 wxPAPER_B_PLUS, // SuperB/SuperB/A3 305 x 487 mm
996 wxPAPER_LETTER_PLUS, // Letter Plus 8.5 x 12.69 in
997 wxPAPER_A4_PLUS, // A4 Plus 210 x 330 mm
998 wxPAPER_A5_TRANSVERSE, // A5 Transverse 148 x 210 mm
999 wxPAPER_B5_TRANSVERSE, // B5 (JIS) Transverse 182 x 257 mm
1000 wxPAPER_A3_EXTRA, // A3 Extra 322 x 445 mm
1001 wxPAPER_A5_EXTRA, // A5 Extra 174 x 235 mm
1002 wxPAPER_B5_EXTRA, // B5 (ISO) Extra 201 x 276 mm
1003 wxPAPER_A2, // A2 420 x 594 mm
1004 wxPAPER_A3_TRANSVERSE, // A3 Transverse 297 x 420 mm
1005 wxPAPER_A3_EXTRA_TRANSVERSE // A3 Extra Transverse 322 x 445 mm
1006
1007} wxPaperSize ;
1008
bb0054cd
RD
1009typedef enum {
1010 wxDUPLEX_SIMPLEX, // Non-duplex
1011 wxDUPLEX_HORIZONTAL,
1012 wxDUPLEX_VERTICAL
1013} wxDuplexMode;
1014
cf694132
RD
1015
1016
e9159fe8
RD
1017// menu and toolbar item kinds
1018enum wxItemKind
1019{
addd64ee 1020 wxITEM_SEPARATOR,
546bfbea
VS
1021 wxITEM_NORMAL,
1022 wxITEM_CHECK,
1023 wxITEM_RADIO,
1024 wxITEM_MAX
e9159fe8
RD
1025};
1026
64e8a1f0 1027
23bed520
RD
1028enum wxHitTest
1029{
1030 wxHT_NOWHERE,
1031
1032 // scrollbar
1033 wxHT_SCROLLBAR_FIRST = wxHT_NOWHERE,
1034 wxHT_SCROLLBAR_ARROW_LINE_1, // left or upper arrow to scroll by line
1035 wxHT_SCROLLBAR_ARROW_LINE_2, // right or down
1036 wxHT_SCROLLBAR_ARROW_PAGE_1, // left or upper arrow to scroll by page
1037 wxHT_SCROLLBAR_ARROW_PAGE_2, // right or down
1038 wxHT_SCROLLBAR_THUMB, // on the thumb
1039 wxHT_SCROLLBAR_BAR_1, // bar to the left/above the thumb
1040 wxHT_SCROLLBAR_BAR_2, // bar to the right/below the thumb
1041 wxHT_SCROLLBAR_LAST,
1042
1043 // window
1044 wxHT_WINDOW_OUTSIDE, // not in this window at all
1045 wxHT_WINDOW_INSIDE, // in the client area
1046 wxHT_WINDOW_VERT_SCROLLBAR, // on the vertical scrollbar
1047 wxHT_WINDOW_HORZ_SCROLLBAR, // on the horizontal scrollbar
1048 wxHT_WINDOW_CORNER, // on the corner between 2 scrollbars
1049
1050 wxHT_MAX
1051};
1052
1053
3ef86e32
RD
1054%{
1055#if ! wxUSE_HOTKEY
1056enum wxHotkeyModifier
1057{
1058 wxMOD_NONE = 0,
1059 wxMOD_ALT = 1,
1060 wxMOD_CONTROL = 2,
1061 wxMOD_SHIFT = 4,
1062 wxMOD_WIN = 8
1063};
1064#define wxEVT_HOTKEY 9999
1065#endif
1066%}
1067
1068enum wxHotkeyModifier
1069{
1070 wxMOD_NONE = 0,
1071 wxMOD_ALT = 1,
1072 wxMOD_CONTROL = 2,
1073 wxMOD_SHIFT = 4,
1074 wxMOD_WIN = 8
1075};
1076
1077
1078enum wxUpdateUI
1079{
1080 wxUPDATE_UI_NONE = 0x0000,
1081 wxUPDATE_UI_RECURSE = 0x0001,
1082 wxUPDATE_UI_FROMIDLE = 0x0002 // Invoked from On(Internal)Idle
1083};
1084
1085
23bed520 1086
7bf85405
RD
1087//---------------------------------------------------------------------------
1088