1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: Definitions and stuff
9 // Copyright: (c) 1998 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
14 //---------------------------------------------------------------------------
16 // Globally turn on the autodoc feature
17 %feature("autodoc", "1"); // 0 == no param types, 1 == show param types
19 // Turn on kwargs by default
20 %feature("kwargs", "1");
22 // Don't generate separate wrappers for each default args combination
23 %feature("compactdefaultargs");
25 #if SWIG_VERSION < 0x010328
26 // Don't generate default ctors or dtors if the C++ doesn't have them
27 %feature("nodefault");
29 // This is the SWIG 1.3.28 way to do the above...
30 %feature("nodefaultctor");
31 %feature("nodefaultdtor");
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") "";
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
41 #pragma SWIG nowarn=314
43 //---------------------------------------------------------------------------
45 // Tell SWIG to wrap all the wrappers with our thread protection
46 %define %threadWrapperOn
48 PyThreadState* __tstate = wxPyBeginAllowThreads();
50 wxPyEndAllowThreads(__tstate);
51 if (PyErr_Occurred()) SWIG_fail;
55 // This one will turn off the generation of the thread wrapper code
56 %define %threadWrapperOff
59 if (PyErr_Occurred()) SWIG_fail;
63 // Turn it on by default
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)
70 if (!wxPyCheckForApp()) SWIG_fail;
71 PyThreadState* __tstate = wxPyBeginAllowThreads();
73 wxPyEndAllowThreads(__tstate);
74 if (PyErr_Occurred()) SWIG_fail;
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.
84 if (PyErr_Occurred()) SWIG_fail;
88 //---------------------------------------------------------------------------
89 // some type definitions to simplify things for SWIG
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 typedef double wxDouble;
98 #define wxWindowID int
101 #define wxUint32 unsigned int
104 //----------------------------------------------------------------------
105 // Various SWIG macros and such
107 #define %pythonAppend %feature("pythonappend")
108 #define %pythonPrepend %feature("pythonprepend")
109 #define %noautodoc %feature("noautodoc")
111 #if SWIG_VERSION >= 0x010327
113 #define %kwargs %feature("kwargs", "1")
114 #define %nokwargs %feature("kwargs", "0")
116 #define %kwargs %feature("kwargs")
117 #define %nokwargs %feature("nokwargs")
120 #define %disownarg(typespec) %typemap(in) typespec = SWIGTYPE* DISOWN
121 #define %cleardisown(typespec) %typemap(in) typespec
123 #define %ref %feature("ref")
124 #define %unref %feature("unref")
128 #define %pythoncode %insert("python")
131 #define WXUNUSED(x) x
134 // Given the name of a wxChar (or wxString) constant in C++, make
135 // a static wxString for wxPython, and also let SWIG wrap it.
136 %define MAKE_CONST_WXSTRING(strname)
137 %{ static const wxString wxPy##strname(wx##strname); %}
139 %rename(strname) wxPy##strname;
140 const wxString wxPy##strname;
144 %define MAKE_CONST_WXSTRING2(strname, val)
145 %{ static const wxString wxPy##strname(val); %}
147 %rename(strname) wxPy##strname;
148 const wxString wxPy##strname;
152 %define MAKE_CONST_WXSTRING_NOSWIG(strname)
153 %{ static const wxString wxPy##strname(wx##strname); %}
156 // Generate code in the module init for the event types, since they may not be
157 // initialized yet when they are used in the static swig_const_table.
158 %typemap(consttab) wxEventType; // TODO: how to prevent code inserted into the consttab?
159 %typemap(constcode) wxEventType "PyDict_SetItemString(d, \"$symname\", PyInt_FromLong($value));";
162 %define %property(NAME, STUFF...)
163 %pythoncode { NAME = property(STUFF) }
167 %define setCallbackInfo(klass)
168 "klass._setCallbackInfo(self, self, klass)"
172 //----------------------------------------------------------------------
173 // Macros for the docstring and autodoc features of SWIG. These will
174 // help make the code look more readable, and pretty, as well as help
175 // reduce typing in some cases.
177 // Set the docsring for the given full or partial declaration
179 %define DocStr(decl, docstr, details)
180 %feature("docstring") decl docstr details;
183 %define DocStr(decl, docstr, details)
184 %feature("docstring") decl docstr;
189 // Set the autodoc string for a full or partial declaration
190 %define DocA(decl, astr)
191 %feature("autodoc") decl astr;
195 // Set both the autodoc and docstring for a full or partial declaration
197 %define DocAStr(decl, astr, docstr, details)
198 %feature("autodoc") decl astr;
199 %feature("docstring") decl docstr details
202 %define DocAStr(decl, astr, docstr, details)
203 %feature("autodoc") decl astr;
204 %feature("docstring") decl docstr
211 // Set the docstring for a decl and then define the decl too. Must use the
212 // full declaration of the item.
214 %define DocDeclStr(type, decl, docstr, details)
215 %feature("docstring") decl docstr details;
219 %define DocDeclStr(type, decl, docstr, details)
220 %feature("docstring") decl docstr;
227 // As above, but also give the decl a new %name
229 %define DocDeclStrName(type, decl, docstr, details, newname)
230 %feature("docstring") decl docstr details;
231 %rename(newname) decl;
235 %define DocDeclStrName(type, decl, docstr, details, newname)
236 %feature("docstring") decl docstr;
237 %rename(newname) decl;
243 // Set the autodoc string for a decl and then define the decl too. Must use the
244 // full declaration of the item.
245 %define DocDeclA(type, decl, astr)
246 %feature("autodoc") decl astr;
250 // As above, but also give the decl a new %name
251 %define DocDeclAName(type, decl, astr, newname)
252 %feature("autodoc") decl astr;
253 %rename(newname) decl;
259 // Set the autodoc and the docstring for a decl and then define the decl too.
260 // Must use the full declaration of the item.
262 %define DocDeclAStr(type, decl, astr, docstr, details)
263 %feature("autodoc") decl astr;
264 %feature("docstring") decl docstr details;
268 %define DocDeclAStr(type, decl, astr, docstr, details)
269 %feature("autodoc") decl astr;
270 %feature("docstring") decl docstr;
276 // As above, but also give the decl a new %name
278 %define DocDeclAStrName(type, decl, astr, docstr, details, newname)
279 %feature("autodoc") decl astr;
280 %feature("docstring") decl docstr details;
281 %rename(newname) decl;
285 %define DocDeclAStrName(type, decl, astr, docstr, details, newname)
286 %feature("autodoc") decl astr;
287 %feature("docstring") decl docstr;
288 %rename(newname) decl;
295 // Set the docstring for a constructor decl and then define the decl too.
296 // Must use the full declaration of the item.
298 %define DocCtorStr(decl, docstr, details)
299 %feature("docstring") decl docstr details;
303 %define DocCtorStr(decl, docstr, details)
304 %feature("docstring") decl docstr;
310 // As above, but also give the decl a new %name
312 %define DocCtorStrName(decl, docstr, details, newname)
313 %feature("docstring") decl docstr details;
314 %rename(newname) decl;
318 %define DocCtorStrName(decl, docstr, details, newname)
319 %feature("docstring") decl docstr;
320 %rename(newname) decl;
326 // Set the autodoc string for a constructor decl and then define the decl too.
327 // Must use the full declaration of the item.
328 %define DocCtorA(decl, astr)
329 %feature("autodoc") decl astr;
333 // As above, but also give the decl a new %name
334 %define DocCtorAName(decl, astr, newname)
335 %feature("autodoc") decl astr;
336 %rename(newname) decl;
342 // Set the autodoc and the docstring for a constructor decl and then define
343 // the decl too. Must use the full declaration of the item.
345 %define DocCtorAStr(decl, astr, docstr, details)
346 %feature("autodoc") decl astr;
347 %feature("docstring") decl docstr details;
351 %define DocCtorAStr(decl, astr, docstr, details)
352 %feature("autodoc") decl astr;
353 %feature("docstring") decl docstr;
360 // As above, but also give the decl a new %name
362 %define DocCtorAStrName(decl, astr, docstr, details, newname)
363 %feature("autodoc") decl astr;
364 %feature("docstring") decl docstr details;
365 %rename(newname) decl;
369 %define DocCtorAStrName(decl, astr, docstr, details, newname)
370 %feature("autodoc") decl astr;
371 %feature("docstring") decl docstr;
372 %rename(newname) decl;
381 %#---------------------------------------------------------------------------
386 // A set of macros to make using %rename easier, since %name has been
388 %define %Rename(newname, type, decl)
389 %rename(newname) decl;
393 %define %RenameCtor(newname, decl)
394 %rename(newname) decl;
399 %define %RenameDocCtor(newname, docstr, details, decl)
400 %feature("docstring") decl docstr details;
401 %rename(newname) decl;
405 %define %RenameDocCtor(newname, docstr, details, decl)
406 %feature("docstring") decl docstr;
407 %rename(newname) decl;
413 %define %RenameDocStr(newname, docstr, details, type, decl)
414 %feature("docstring") decl docstr;
415 %rename(newname) decl;
419 %define %RenameDocStr(newname, docstr, details, type, decl)
420 %feature("docstring") decl docstr details;
421 %rename(newname) decl;
426 //---------------------------------------------------------------------------
427 // Generates a base_On* method that just wraps a call to the On*, and mark it
428 // deprecated. We need this because there is no longer any need for a
429 // base_On* method to be able to call the C++ base class method, since our
430 // virtualization code can now sense when an attempt is being made to call
431 // the base class version from the derived class override.
433 %define %MAKE_BASE_FUNC(Class, Method)
435 def base_##Method(*args, **kw):
436 return Class.Method(*args, **kw)
437 base_##Method = wx._deprecated(base_##Method,
438 "Please use Class.Method instead.")
442 //---------------------------------------------------------------------------
443 // Forward declarations and %renames for some classes, so the autodoc strings
444 // will be able to use the right types even when the real class declaration is
445 // not in the module being processed or seen by %import's.
447 #ifdef BUILDING_RENAMERS
448 #define FORWARD_DECLARE(wxName, Name)
450 %define FORWARD_DECLARE(wxName, Name)
451 %rename(Name) wxName;
456 FORWARD_DECLARE(wxString, String);
457 FORWARD_DECLARE(wxBitmap, Bitmap);
458 FORWARD_DECLARE(wxDateTime, DateTime);
459 FORWARD_DECLARE(wxInputStream, InputStream);
460 FORWARD_DECLARE(wxDC, DC);
461 FORWARD_DECLARE(wxCursor, Cursor);
462 FORWARD_DECLARE(wxRegion, Region);
463 FORWARD_DECLARE(wxColour, Colour);
464 FORWARD_DECLARE(wxFont, Font);
465 FORWARD_DECLARE(wxCaret, Caret);
466 FORWARD_DECLARE(wxToolTip, ToolTip);
467 FORWARD_DECLARE(wxPyDropTarget, DropTarget);
468 FORWARD_DECLARE(wxImageList, ImageList);
469 FORWARD_DECLARE(wxMemoryDC, MemoryDC);
470 FORWARD_DECLARE(wxHtmlTagHandler, HtmlTagHandler);
471 FORWARD_DECLARE(wxConfigBase, ConfigBase);
472 FORWARD_DECLARE(wxIcon, Icon);
473 FORWARD_DECLARE(wxStaticBox, StaticBox);
476 //---------------------------------------------------------------------------
477 // This macro makes a class to wrap a type specific class derived from wxList,
478 // and make it look like a Python sequence, including with iterator support
480 %define wxLIST_WRAPPER(ListClass, ItemClass)
481 // first a bit of C++ code...
483 class ListClass##_iterator
486 ListClass##_iterator(ListClass::compatibility_iterator start)
490 ItemClass* obj = NULL;
492 obj = m_node->GetData();
493 m_node = m_node->GetNext();
495 else PyErr_SetString(PyExc_StopIteration, "");
499 ListClass::compatibility_iterator m_node;
503 // Now declare the classes for SWIG
505 DocStr(ListClass##_iterator,
506 "This class serves as an iterator for a ListClass object.", "");
508 class ListClass##_iterator
511 //ListClass##_iterator();
512 ~ListClass_iterator();
519 "This class wraps a wxList-based class and gives it a Python
520 sequence-like interface. Sequence operations supported are length,
521 index access and iteration.", "");
526 //ListClass(); This will always be created by some C++ function
535 KeepGIL(__getitem__);
536 ItemClass* __getitem__(size_t index) {
537 if (index < self->size()) {
538 ListClass::compatibility_iterator node = self->Item(index);
539 if (node) return node->GetData();
541 PyErr_SetString(PyExc_IndexError, "Invalid list index");
545 KeepGIL(__contains__);
546 bool __contains__(const ItemClass* obj) {
547 return self->Find(obj) != NULL;
552 ListClass##_iterator* __iter__() {
553 return new ListClass##_iterator(self->GetFirst());
558 return "ListClass: " + repr(list(self))
565 // This macro is similar to the above, but it is to be used when there isn't a
566 // type-specific C++ list class to use. In other words the C++ code is using
567 // a plain wxList and typecasting the node values, so we'll do the same.
568 %define wxUNTYPED_LIST_WRAPPER(ListClass, ItemClass)
569 // first a bit of C++ code...
574 ListClass(wxList* theList)
581 class ListClass##_iterator
584 ListClass##_iterator(wxList::compatibility_iterator start)
588 ItemClass* obj = NULL;
590 obj = (ItemClass*)m_node->GetData();
591 m_node = m_node->GetNext();
593 else PyErr_SetString(PyExc_StopIteration, "");
597 wxList::compatibility_iterator m_node;
601 // Now declare the classes for SWIG
603 DocStr(ListClass##_iterator,
604 "This class serves as an iterator for a ListClass object.", "");
606 class ListClass##_iterator
609 //ListClass##_iterator();
610 ~ListClass_iterator();
617 "This class wraps a wxList-based class and gives it a Python
618 sequence-like interface. Sequence operations supported are length,
619 index access and iteration.", "");
623 //ListClass(); This will always be created by some C++ function
629 return self->m_list->size();
632 KeepGIL(__getitem__);
633 ItemClass* __getitem__(size_t index) {
634 if (index < self->m_list->size()) {
635 wxList::compatibility_iterator node = self->m_list->Item(index);
636 if (node) return (ItemClass*)node->GetData();
638 PyErr_SetString(PyExc_IndexError, "Invalid list index");
642 KeepGIL(__contains__);
643 bool __contains__(const ItemClass* obj) {
644 return self->m_list->Find(obj) != NULL;
649 ListClass##_iterator* __iter__() {
650 return new ListClass##_iterator(self->m_list->GetFirst());
655 return "ListClass: " + repr(list(self))
659 // A typemap to handle converting a wxList& return value to this new list
660 // type. To use this just change the return value type in the class
661 // definition to this typedef instead of wxList, then SWIG will use the
664 typedef wxList ListClass##_t;
666 %typemap(out) ListClass##_t& {
667 ListClass* mylist = new ListClass($1);
668 $result = SWIG_NewPointerObj(SWIG_as_voidptr(mylist), SWIGTYPE_p_##ListClass, SWIG_POINTER_OWN );
674 //---------------------------------------------------------------------------
677 #if !WXWIN_COMPATIBILITY_2_4
678 #define wxHIDE_READONLY 0
683 // General numeric #define's and etc. Making them all enums makes SWIG use the
684 // real macro when making the Python Int
702 wxTRANSPARENT_WINDOW,
704 wxDEFAULT_CONTROL_BORDER,
705 wxDEFAULT_STATUSBAR_STYLE,
792 wxSIZE_ALLOW_MINUS_ONE,
796 wxPRINT_QUALITY_HIGH,
797 wxPRINT_QUALITY_MEDIUM,
799 wxPRINT_QUALITY_DRAFT,
823 wxID_HELP_PROCEDURES,
845 wxID_VIEW_LARGEICONS,
846 wxID_VIEW_SMALLICONS,
907 wxID_REVERT_TO_SAVED,
913 wxNO_FULL_REPAINT_ON_RESIZE,
914 wxFULL_REPAINT_ON_RESIZE,
919 wxWS_EX_VALIDATE_RECURSIVELY,
920 wxWS_EX_BLOCK_EVENTS,
923 wxWS_EX_THEMED_BACKGROUND,
924 wxWS_EX_PROCESS_IDLE,
925 wxWS_EX_PROCESS_UI_UPDATES,
928 // Mapping modes (as per Windows)
941 // It looks like wxTabCtrl may rise from the dead. Uncomment these if
942 // it gets an implementation for all platforms...
943 // wxTC_RIGHTJUSTIFY,
956 enum wxGeometryCentre
991 wxALIGN_CENTER_HORIZONTAL,
992 wxALIGN_CENTRE_HORIZONTAL,
997 wxALIGN_CENTER_VERTICAL,
998 wxALIGN_CENTRE_VERTICAL,
1016 %pythoncode { ADJUST_MINSIZE = 0 }
1031 enum wxBackgroundStyle
1063 wxSTIPPLE_MASK_OPAQUE,
1080 wxXOR, // src XOR dst
1081 wxINVERT, // NOT dst
1082 wxOR_REVERSE, // src OR (NOT dst)
1083 wxAND_REVERSE,// src AND (NOT dst)
1085 wxAND, // src AND dst
1086 wxAND_INVERT, // (NOT src) AND dst
1088 wxNOR, // (NOT src) AND (NOT dst)
1089 wxEQUIV, // (NOT src) XOR dst
1090 wxSRC_INVERT, // (NOT src)
1091 wxOR_INVERT, // (NOT src) OR dst
1092 wxNAND, // (NOT src) OR (NOT dst)
1095 // wxSRC_OR, // source _bitmap_ OR destination
1096 // wxSRC_AND // source _bitmap_ AND destination
1189 WXK_NUMPAD_PAGEDOWN,
1195 WXK_NUMPAD_MULTIPLY,
1197 WXK_NUMPAD_SEPARATOR,
1198 WXK_NUMPAD_SUBTRACT,
1208 // Hardware-specific buttons
1231 // deprecated synonymns
1233 WXK_PRIOR = WXK_PAGEUP
1234 WXK_NEXT = WXK_PAGEDOWN
1235 WXK_NUMPAD_PRIOR = WXK_NUMPAD_PAGEUP
1236 WXK_NUMPAD_NEXT = WXK_NUMPAD_PAGEDOWN
1240 wxPAPER_NONE, // Use specific dimensions
1241 wxPAPER_LETTER, // Letter, 8 1/2 by 11 inches
1242 wxPAPER_LEGAL, // Legal, 8 1/2 by 14 inches
1243 wxPAPER_A4, // A4 Sheet, 210 by 297 millimeters
1244 wxPAPER_CSHEET, // C Sheet, 17 by 22 inches
1245 wxPAPER_DSHEET, // D Sheet, 22 by 34 inches
1246 wxPAPER_ESHEET, // E Sheet, 34 by 44 inches
1247 wxPAPER_LETTERSMALL, // Letter Small, 8 1/2 by 11 inches
1248 wxPAPER_TABLOID, // Tabloid, 11 by 17 inches
1249 wxPAPER_LEDGER, // Ledger, 17 by 11 inches
1250 wxPAPER_STATEMENT, // Statement, 5 1/2 by 8 1/2 inches
1251 wxPAPER_EXECUTIVE, // Executive, 7 1/4 by 10 1/2 inches
1252 wxPAPER_A3, // A3 sheet, 297 by 420 millimeters
1253 wxPAPER_A4SMALL, // A4 small sheet, 210 by 297 millimeters
1254 wxPAPER_A5, // A5 sheet, 148 by 210 millimeters
1255 wxPAPER_B4, // B4 sheet, 250 by 354 millimeters
1256 wxPAPER_B5, // B5 sheet, 182-by-257-millimeter paper
1257 wxPAPER_FOLIO, // Folio, 8-1/2-by-13-inch paper
1258 wxPAPER_QUARTO, // Quarto, 215-by-275-millimeter paper
1259 wxPAPER_10X14, // 10-by-14-inch sheet
1260 wxPAPER_11X17, // 11-by-17-inch sheet
1261 wxPAPER_NOTE, // Note, 8 1/2 by 11 inches
1262 wxPAPER_ENV_9, // #9 Envelope, 3 7/8 by 8 7/8 inches
1263 wxPAPER_ENV_10, // #10 Envelope, 4 1/8 by 9 1/2 inches
1264 wxPAPER_ENV_11, // #11 Envelope, 4 1/2 by 10 3/8 inches
1265 wxPAPER_ENV_12, // #12 Envelope, 4 3/4 by 11 inches
1266 wxPAPER_ENV_14, // #14 Envelope, 5 by 11 1/2 inches
1267 wxPAPER_ENV_DL, // DL Envelope, 110 by 220 millimeters
1268 wxPAPER_ENV_C5, // C5 Envelope, 162 by 229 millimeters
1269 wxPAPER_ENV_C3, // C3 Envelope, 324 by 458 millimeters
1270 wxPAPER_ENV_C4, // C4 Envelope, 229 by 324 millimeters
1271 wxPAPER_ENV_C6, // C6 Envelope, 114 by 162 millimeters
1272 wxPAPER_ENV_C65, // C65 Envelope, 114 by 229 millimeters
1273 wxPAPER_ENV_B4, // B4 Envelope, 250 by 353 millimeters
1274 wxPAPER_ENV_B5, // B5 Envelope, 176 by 250 millimeters
1275 wxPAPER_ENV_B6, // B6 Envelope, 176 by 125 millimeters
1276 wxPAPER_ENV_ITALY, // Italy Envelope, 110 by 230 millimeters
1277 wxPAPER_ENV_MONARCH, // Monarch Envelope, 3 7/8 by 7 1/2 inches
1278 wxPAPER_ENV_PERSONAL, // 6 3/4 Envelope, 3 5/8 by 6 1/2 inches
1279 wxPAPER_FANFOLD_US, // US Std Fanfold, 14 7/8 by 11 inches
1280 wxPAPER_FANFOLD_STD_GERMAN, // German Std Fanfold, 8 1/2 by 12 inches
1281 wxPAPER_FANFOLD_LGL_GERMAN, // German Legal Fanfold, 8 1/2 by 13 inches
1283 wxPAPER_ISO_B4, // B4 (ISO) 250 x 353 mm
1284 wxPAPER_JAPANESE_POSTCARD, // Japanese Postcard 100 x 148 mm
1285 wxPAPER_9X11, // 9 x 11 in
1286 wxPAPER_10X11, // 10 x 11 in
1287 wxPAPER_15X11, // 15 x 11 in
1288 wxPAPER_ENV_INVITE, // Envelope Invite 220 x 220 mm
1289 wxPAPER_LETTER_EXTRA, // Letter Extra 9 \275 x 12 in
1290 wxPAPER_LEGAL_EXTRA, // Legal Extra 9 \275 x 15 in
1291 wxPAPER_TABLOID_EXTRA, // Tabloid Extra 11.69 x 18 in
1292 wxPAPER_A4_EXTRA, // A4 Extra 9.27 x 12.69 in
1293 wxPAPER_LETTER_TRANSVERSE, // Letter Transverse 8 \275 x 11 in
1294 wxPAPER_A4_TRANSVERSE, // A4 Transverse 210 x 297 mm
1295 wxPAPER_LETTER_EXTRA_TRANSVERSE, // Letter Extra Transverse 9\275 x 12 in
1296 wxPAPER_A_PLUS, // SuperA/SuperA/A4 227 x 356 mm
1297 wxPAPER_B_PLUS, // SuperB/SuperB/A3 305 x 487 mm
1298 wxPAPER_LETTER_PLUS, // Letter Plus 8.5 x 12.69 in
1299 wxPAPER_A4_PLUS, // A4 Plus 210 x 330 mm
1300 wxPAPER_A5_TRANSVERSE, // A5 Transverse 148 x 210 mm
1301 wxPAPER_B5_TRANSVERSE, // B5 (JIS) Transverse 182 x 257 mm
1302 wxPAPER_A3_EXTRA, // A3 Extra 322 x 445 mm
1303 wxPAPER_A5_EXTRA, // A5 Extra 174 x 235 mm
1304 wxPAPER_B5_EXTRA, // B5 (ISO) Extra 201 x 276 mm
1305 wxPAPER_A2, // A2 420 x 594 mm
1306 wxPAPER_A3_TRANSVERSE, // A3 Transverse 297 x 420 mm
1307 wxPAPER_A3_EXTRA_TRANSVERSE, // A3 Extra Transverse 322 x 445 mm
1309 wxPAPER_DBL_JAPANESE_POSTCARD,/* Japanese Double Postcard 200 x 148 mm */
1310 wxPAPER_A6, /* A6 105 x 148 mm */
1311 wxPAPER_JENV_KAKU2, /* Japanese Envelope Kaku #2 */
1312 wxPAPER_JENV_KAKU3, /* Japanese Envelope Kaku #3 */
1313 wxPAPER_JENV_CHOU3, /* Japanese Envelope Chou #3 */
1314 wxPAPER_JENV_CHOU4, /* Japanese Envelope Chou #4 */
1315 wxPAPER_LETTER_ROTATED, /* Letter Rotated 11 x 8 1/2 in */
1316 wxPAPER_A3_ROTATED, /* A3 Rotated 420 x 297 mm */
1317 wxPAPER_A4_ROTATED, /* A4 Rotated 297 x 210 mm */
1318 wxPAPER_A5_ROTATED, /* A5 Rotated 210 x 148 mm */
1319 wxPAPER_B4_JIS_ROTATED, /* B4 (JIS) Rotated 364 x 257 mm */
1320 wxPAPER_B5_JIS_ROTATED, /* B5 (JIS) Rotated 257 x 182 mm */
1321 wxPAPER_JAPANESE_POSTCARD_ROTATED,/* Japanese Postcard Rotated 148 x 100 mm */
1322 wxPAPER_DBL_JAPANESE_POSTCARD_ROTATED,/* Double Japanese Postcard Rotated 148 x 200 mm */
1323 wxPAPER_A6_ROTATED, /* A6 Rotated 148 x 105 mm */
1324 wxPAPER_JENV_KAKU2_ROTATED, /* Japanese Envelope Kaku #2 Rotated */
1325 wxPAPER_JENV_KAKU3_ROTATED, /* Japanese Envelope Kaku #3 Rotated */
1326 wxPAPER_JENV_CHOU3_ROTATED, /* Japanese Envelope Chou #3 Rotated */
1327 wxPAPER_JENV_CHOU4_ROTATED, /* Japanese Envelope Chou #4 Rotated */
1328 wxPAPER_B6_JIS, /* B6 (JIS) 128 x 182 mm */
1329 wxPAPER_B6_JIS_ROTATED, /* B6 (JIS) Rotated 182 x 128 mm */
1330 wxPAPER_12X11, /* 12 x 11 in */
1331 wxPAPER_JENV_YOU4, /* Japanese Envelope You #4 */
1332 wxPAPER_JENV_YOU4_ROTATED, /* Japanese Envelope You #4 Rotated */
1333 wxPAPER_P16K, /* PRC 16K 146 x 215 mm */
1334 wxPAPER_P32K, /* PRC 32K 97 x 151 mm */
1335 wxPAPER_P32KBIG, /* PRC 32K(Big) 97 x 151 mm */
1336 wxPAPER_PENV_1, /* PRC Envelope #1 102 x 165 mm */
1337 wxPAPER_PENV_2, /* PRC Envelope #2 102 x 176 mm */
1338 wxPAPER_PENV_3, /* PRC Envelope #3 125 x 176 mm */
1339 wxPAPER_PENV_4, /* PRC Envelope #4 110 x 208 mm */
1340 wxPAPER_PENV_5, /* PRC Envelope #5 110 x 220 mm */
1341 wxPAPER_PENV_6, /* PRC Envelope #6 120 x 230 mm */
1342 wxPAPER_PENV_7, /* PRC Envelope #7 160 x 230 mm */
1343 wxPAPER_PENV_8, /* PRC Envelope #8 120 x 309 mm */
1344 wxPAPER_PENV_9, /* PRC Envelope #9 229 x 324 mm */
1345 wxPAPER_PENV_10, /* PRC Envelope #10 324 x 458 mm */
1346 wxPAPER_P16K_ROTATED, /* PRC 16K Rotated */
1347 wxPAPER_P32K_ROTATED, /* PRC 32K Rotated */
1348 wxPAPER_P32KBIG_ROTATED, /* PRC 32K(Big) Rotated */
1349 wxPAPER_PENV_1_ROTATED, /* PRC Envelope #1 Rotated 165 x 102 mm */
1350 wxPAPER_PENV_2_ROTATED, /* PRC Envelope #2 Rotated 176 x 102 mm */
1351 wxPAPER_PENV_3_ROTATED, /* PRC Envelope #3 Rotated 176 x 125 mm */
1352 wxPAPER_PENV_4_ROTATED, /* PRC Envelope #4 Rotated 208 x 110 mm */
1353 wxPAPER_PENV_5_ROTATED, /* PRC Envelope #5 Rotated 220 x 110 mm */
1354 wxPAPER_PENV_6_ROTATED, /* PRC Envelope #6 Rotated 230 x 120 mm */
1355 wxPAPER_PENV_7_ROTATED, /* PRC Envelope #7 Rotated 230 x 160 mm */
1356 wxPAPER_PENV_8_ROTATED, /* PRC Envelope #8 Rotated 309 x 120 mm */
1357 wxPAPER_PENV_9_ROTATED, /* PRC Envelope #9 Rotated 324 x 229 mm */
1358 wxPAPER_PENV_10_ROTATED /* PRC Envelope #10 Rotated 458 x 324 m */
1363 wxDUPLEX_SIMPLEX, // Non-duplex
1364 wxDUPLEX_HORIZONTAL,
1370 // menu and toolbar item kinds
1387 wxHT_SCROLLBAR_FIRST = wxHT_NOWHERE,
1388 wxHT_SCROLLBAR_ARROW_LINE_1, // left or upper arrow to scroll by line
1389 wxHT_SCROLLBAR_ARROW_LINE_2, // right or down
1390 wxHT_SCROLLBAR_ARROW_PAGE_1, // left or upper arrow to scroll by page
1391 wxHT_SCROLLBAR_ARROW_PAGE_2, // right or down
1392 wxHT_SCROLLBAR_THUMB, // on the thumb
1393 wxHT_SCROLLBAR_BAR_1, // bar to the left/above the thumb
1394 wxHT_SCROLLBAR_BAR_2, // bar to the right/below the thumb
1395 wxHT_SCROLLBAR_LAST,
1398 wxHT_WINDOW_OUTSIDE, // not in this window at all
1399 wxHT_WINDOW_INSIDE, // in the client area
1400 wxHT_WINDOW_VERT_SCROLLBAR, // on the vertical scrollbar
1401 wxHT_WINDOW_HORZ_SCROLLBAR, // on the horizontal scrollbar
1402 wxHT_WINDOW_CORNER, // on the corner between 2 scrollbars
1425 wxUPDATE_UI_NONE = 0x0000,
1426 wxUPDATE_UI_RECURSE = 0x0001,
1427 wxUPDATE_UI_FROMIDLE = 0x0002 // Invoked from On(Internal)Idle
1431 enum wxLayoutDirection
1434 wxLayout_LeftToRight,
1435 wxLayout_RightToLeft
1440 //---------------------------------------------------------------------------