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