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