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