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