X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d8194e5dd4fc56bb4e8a4dccb1dae9500c6be584..300b44a9336a9610fef256afb412e8fb6b51840f:/wxPython/src/_defs.i?ds=sidebyside diff --git a/wxPython/src/_defs.i b/wxPython/src/_defs.i index c372c37d75..1eb46b0cf2 100644 --- a/wxPython/src/_defs.i +++ b/wxPython/src/_defs.i @@ -12,20 +12,56 @@ //--------------------------------------------------------------------------- -// Globally turn on the autodoc feature +// Globally turn on the autodoc feature %feature("autodoc", "1"); // 0 == no param types, 1 == show param types +// Turn on kwargs by default +%feature("kwargs", "1"); + +// Don't generate separate wrappers for each default args combination +%feature("compactdefaultargs"); + +#if SWIG_VERSION < 0x010328 +// Don't generate default ctors or dtors if the C++ doesn't have them +%feature("nodefault"); +#else +// This is the SWIG 1.3.28 way to do the above... +%feature("nodefaultctor"); +%feature("nodefaultdtor"); +#endif + +// For all items that don't have a %rename already, give them a %rename that +// removes the leading 'wx' (except for wxEVT_* items.) +%rename("%(wxpy)s") ""; + +// For now, just supress the warning about using Python keywords as parameter +// names. Will need to come back later and correct these rather than just +// hide them... +#pragma SWIG nowarn=314 + //--------------------------------------------------------------------------- -// Tell SWIG to wrap all the wrappers with our thread protection by default +// Tell SWIG to wrap all the wrappers with our thread protection +%define %threadWrapperOn %exception { PyThreadState* __tstate = wxPyBeginAllowThreads(); $action wxPyEndAllowThreads(__tstate); if (PyErr_Occurred()) SWIG_fail; } +%enddef +// This one will turn off the generation of the thread wrapper code +%define %threadWrapperOff +%exception { + $action + if (PyErr_Occurred()) SWIG_fail; +} +%enddef + +// Turn it on by default +%threadWrapperOn // This one can be used to add a check for an existing wxApp before the real // work is done. An exception is raised if there isn't one. @@ -39,8 +75,16 @@ } %enddef - +// This macro can be used to disable the releasing of the GIL when calling the +// C++ function. This is like using threadWrapperOff for just this function. +%define KeepGIL(name) +%exception name { + $action + if (PyErr_Occurred()) SWIG_fail; +} +%enddef + //--------------------------------------------------------------------------- // some type definitions to simplify things for SWIG @@ -61,14 +105,23 @@ typedef unsigned long wxUIntPtr; #define %pythonAppend %feature("pythonappend") #define %pythonPrepend %feature("pythonprepend") +#define %noautodoc %feature("noautodoc") + +#if SWIG_VERSION >= 0x010327 +#undef %kwargs +#define %kwargs %feature("kwargs", "1") +#define %nokwargs %feature("kwargs", "0") +#else #define %kwargs %feature("kwargs") #define %nokwargs %feature("nokwargs") -#define %noautodoc %feature("noautodoc") +#endif +#define %disownarg(typespec) %typemap(in) typespec = SWIGTYPE* DISOWN +#define %cleardisown(typespec) %typemap(in) typespec + +#define %ref %feature("ref") +#define %unref %feature("unref") -//#ifndef %shadow -//#define %shadow %insert("shadow") -//#endif #ifndef %pythoncode #define %pythoncode %insert("python") @@ -105,6 +158,15 @@ typedef unsigned long wxUIntPtr; %typemap(constcode) wxEventType "PyDict_SetItemString(d, \"$symname\", PyInt_FromLong($value));"; +%define %property(NAME, STUFF...) + %pythoncode { NAME = property(STUFF) } +%enddef + + +%define setCallbackInfo(klass) + "klass._setCallbackInfo(self, self, klass)" +%enddef + //---------------------------------------------------------------------- // Macros for the docstring and autodoc features of SWIG. These will @@ -259,21 +321,6 @@ typedef unsigned long wxUIntPtr; %enddef #endif -#ifdef _DO_FULL_DOCS - %define RenameDocCtorStr(newname, docstr, details, decl) - %feature("docstring") decl docstr details; - %rename(newname) decl; - decl - %enddef -#else - %define RenameDocCtorStr(newname, docstr, details, decl) - %feature("docstring") decl docstr; - %rename(newname) decl; - decl - %enddef -#endif - - // Set the autodoc string for a constructor decl and then define the decl too. // Must use the full declaration of the item. @@ -361,6 +408,23 @@ typedef unsigned long wxUIntPtr; %enddef #endif + +//--------------------------------------------------------------------------- +// Generates a base_On* method that just wraps a call to the On*, and mark it +// deprecated. We need this because there is no longer any need for a +// base_On* method to be able to call the C++ base class method, since our +// virtualization code can now sense when an attempt is being made to call +// the base class version from the derived class override. + +%define %MAKE_BASE_FUNC(Class, Method) + %pythoncode { + def base_##Method(*args, **kw): + return Class.Method(*args, **kw) + base_##Method = wx._deprecated(base_##Method, + "Please use Class.Method instead.") + } +%enddef + //--------------------------------------------------------------------------- // Forward declarations and %renames for some classes, so the autodoc strings // will be able to use the right types even when the real class declaration is @@ -425,7 +489,9 @@ enum { wxSTATIC_BORDER, wxTRANSPARENT_WINDOW, wxNO_BORDER, - + wxDEFAULT_CONTROL_BORDER, + wxDEFAULT_STATUSBAR_STYLE, + wxTAB_TRAVERSAL, wxWANTS_CHARS, wxPOPUP_WINDOW, @@ -436,6 +502,8 @@ enum { wxCLIP_CHILDREN, wxCLIP_SIBLINGS, + wxWINDOW_STYLE_MASK, + wxALWAYS_SHOW_SB, wxRETAINED, @@ -452,8 +520,6 @@ enum { wxLB_EXTENDED, wxLB_OWNERDRAW, wxLB_HSCROLL, - wxPROCESS_ENTER, - wxPASSWORD, wxCB_SIMPLE, wxCB_DROPDOWN, @@ -470,8 +536,7 @@ enum { wxSB_VERTICAL, wxRB_USE_CHECKBOX, wxST_SIZEGRIP, - wxST_NO_AUTORESIZE, - + wxFLOOD_SURFACE, wxFLOOD_BORDER, wxODDEVEN_RULE, @@ -487,6 +552,9 @@ enum { wxNO, wxNO_DEFAULT, wxYES_DEFAULT, + wxAPPLY, + wxCLOSE, + wxICON_EXCLAMATION, wxICON_HAND, wxICON_QUESTION, @@ -510,6 +578,7 @@ enum { wxSIZE_AUTO, wxSIZE_USE_EXISTING, wxSIZE_ALLOW_MINUS_ONE, + wxSIZE_FORCE, wxPORTRAIT, wxLANDSCAPE, wxPRINT_QUALITY_HIGH, @@ -519,6 +588,7 @@ enum { wxID_ANY, wxID_SEPARATOR, + wxID_NONE, wxID_LOWEST, wxID_OPEN, @@ -533,15 +603,19 @@ enum { wxID_HELP, wxID_PRINT, wxID_PRINT_SETUP, + wxID_PAGE_SETUP, wxID_PREVIEW, wxID_ABOUT, wxID_HELP_CONTENTS, wxID_HELP_COMMANDS, wxID_HELP_PROCEDURES, wxID_HELP_CONTEXT, + wxID_HELP_INDEX, + wxID_HELP_SEARCH, wxID_CLOSE_ALL, wxID_PREFERENCES, + wxID_EDIT, wxID_CUT, wxID_COPY, wxID_PASTE, @@ -564,6 +638,7 @@ enum { wxID_VIEW_SORTSIZE, wxID_VIEW_SORTTYPE, + wxID_FILE, wxID_FILE1, wxID_FILE2, wxID_FILE3, @@ -621,31 +696,6 @@ enum { wxID_HIGHEST, - wxOPEN, - wxSAVE, - wxHIDE_READONLY, - wxOVERWRITE_PROMPT, - wxFILE_MUST_EXIST, - wxMULTIPLE, - wxCHANGE_DIR, - - wxACCEL_ALT, - wxACCEL_CTRL, - wxACCEL_SHIFT, - wxACCEL_NORMAL, - - wxPD_AUTO_HIDE, - wxPD_APP_MODAL, - wxPD_CAN_ABORT, - wxPD_ELAPSED_TIME, - wxPD_ESTIMATED_TIME, - wxPD_REMAINING_TIME, - wxPD_SMOOTH, - wxPD_CAN_SKIP, - - wxDD_NEW_DIR_BUTTON, - wxDD_DEFAULT_STYLE, - wxMENU_TEAROFF, wxMB_DOCKABLE, wxNO_FULL_REPAINT_ON_RESIZE, @@ -690,13 +740,6 @@ enum { }; -#ifdef __WXGTK__ -#define wxDEFAULT_STATUSBAR_STYLE wxST_SIZEGRIP|wxFULL_REPAINT_ON_RESIZE -#else -#define wxDEFAULT_STATUSBAR_STYLE wxST_SIZEGRIP -#endif - - enum wxGeometryCentre { @@ -757,9 +800,8 @@ enum wxStretch wxSHAPED, wxFIXED_MINSIZE, wxTILE, - wxADJUST_MINSIZE, }; - +%pythoncode { ADJUST_MINSIZE = 0 } enum wxBorder { @@ -805,6 +847,8 @@ enum { wxUSER_DASH, wxTRANSPARENT, wxSTIPPLE, + wxSTIPPLE_MASK, + wxSTIPPLE_MASK_OPAQUE, wxBDIAGONAL_HATCH, wxCROSSDIAG_HATCH, wxFDIAGONAL_HATCH, @@ -860,8 +904,6 @@ enum wxKeyCode { WXK_MENU, WXK_PAUSE, WXK_CAPITAL, - WXK_PRIOR, /* Page up */ - WXK_NEXT, /* Page down */ WXK_END, WXK_HOME, WXK_LEFT, @@ -931,9 +973,7 @@ enum wxKeyCode { WXK_NUMPAD_UP, WXK_NUMPAD_RIGHT, WXK_NUMPAD_DOWN, - WXK_NUMPAD_PRIOR, WXK_NUMPAD_PAGEUP, - WXK_NUMPAD_NEXT, WXK_NUMPAD_PAGEDOWN, WXK_NUMPAD_END, WXK_NUMPAD_BEGIN, @@ -976,7 +1016,13 @@ enum wxKeyCode { WXK_SPECIAL20 }; - +// deprecated synonymns +%pythoncode { + WXK_PRIOR = WXK_PAGEUP + WXK_NEXT = WXK_PAGEDOWN + WXK_NUMPAD_PRIOR = WXK_NUMPAD_PAGEUP + WXK_NUMPAD_NEXT = WXK_NUMPAD_PAGEDOWN +} typedef enum { wxPAPER_NONE, // Use specific dimensions @@ -1046,8 +1092,59 @@ typedef enum { wxPAPER_B5_EXTRA, // B5 (ISO) Extra 201 x 276 mm wxPAPER_A2, // A2 420 x 594 mm wxPAPER_A3_TRANSVERSE, // A3 Transverse 297 x 420 mm - wxPAPER_A3_EXTRA_TRANSVERSE // A3 Extra Transverse 322 x 445 mm - + wxPAPER_A3_EXTRA_TRANSVERSE, // A3 Extra Transverse 322 x 445 mm + + wxPAPER_DBL_JAPANESE_POSTCARD,/* Japanese Double Postcard 200 x 148 mm */ + wxPAPER_A6, /* A6 105 x 148 mm */ + wxPAPER_JENV_KAKU2, /* Japanese Envelope Kaku #2 */ + wxPAPER_JENV_KAKU3, /* Japanese Envelope Kaku #3 */ + wxPAPER_JENV_CHOU3, /* Japanese Envelope Chou #3 */ + wxPAPER_JENV_CHOU4, /* Japanese Envelope Chou #4 */ + wxPAPER_LETTER_ROTATED, /* Letter Rotated 11 x 8 1/2 in */ + wxPAPER_A3_ROTATED, /* A3 Rotated 420 x 297 mm */ + wxPAPER_A4_ROTATED, /* A4 Rotated 297 x 210 mm */ + wxPAPER_A5_ROTATED, /* A5 Rotated 210 x 148 mm */ + wxPAPER_B4_JIS_ROTATED, /* B4 (JIS) Rotated 364 x 257 mm */ + wxPAPER_B5_JIS_ROTATED, /* B5 (JIS) Rotated 257 x 182 mm */ + wxPAPER_JAPANESE_POSTCARD_ROTATED,/* Japanese Postcard Rotated 148 x 100 mm */ + wxPAPER_DBL_JAPANESE_POSTCARD_ROTATED,/* Double Japanese Postcard Rotated 148 x 200 mm */ + wxPAPER_A6_ROTATED, /* A6 Rotated 148 x 105 mm */ + wxPAPER_JENV_KAKU2_ROTATED, /* Japanese Envelope Kaku #2 Rotated */ + wxPAPER_JENV_KAKU3_ROTATED, /* Japanese Envelope Kaku #3 Rotated */ + wxPAPER_JENV_CHOU3_ROTATED, /* Japanese Envelope Chou #3 Rotated */ + wxPAPER_JENV_CHOU4_ROTATED, /* Japanese Envelope Chou #4 Rotated */ + wxPAPER_B6_JIS, /* B6 (JIS) 128 x 182 mm */ + wxPAPER_B6_JIS_ROTATED, /* B6 (JIS) Rotated 182 x 128 mm */ + wxPAPER_12X11, /* 12 x 11 in */ + wxPAPER_JENV_YOU4, /* Japanese Envelope You #4 */ + wxPAPER_JENV_YOU4_ROTATED, /* Japanese Envelope You #4 Rotated */ + wxPAPER_P16K, /* PRC 16K 146 x 215 mm */ + wxPAPER_P32K, /* PRC 32K 97 x 151 mm */ + wxPAPER_P32KBIG, /* PRC 32K(Big) 97 x 151 mm */ + wxPAPER_PENV_1, /* PRC Envelope #1 102 x 165 mm */ + wxPAPER_PENV_2, /* PRC Envelope #2 102 x 176 mm */ + wxPAPER_PENV_3, /* PRC Envelope #3 125 x 176 mm */ + wxPAPER_PENV_4, /* PRC Envelope #4 110 x 208 mm */ + wxPAPER_PENV_5, /* PRC Envelope #5 110 x 220 mm */ + wxPAPER_PENV_6, /* PRC Envelope #6 120 x 230 mm */ + wxPAPER_PENV_7, /* PRC Envelope #7 160 x 230 mm */ + wxPAPER_PENV_8, /* PRC Envelope #8 120 x 309 mm */ + wxPAPER_PENV_9, /* PRC Envelope #9 229 x 324 mm */ + wxPAPER_PENV_10, /* PRC Envelope #10 324 x 458 mm */ + wxPAPER_P16K_ROTATED, /* PRC 16K Rotated */ + wxPAPER_P32K_ROTATED, /* PRC 32K Rotated */ + wxPAPER_P32KBIG_ROTATED, /* PRC 32K(Big) Rotated */ + wxPAPER_PENV_1_ROTATED, /* PRC Envelope #1 Rotated 165 x 102 mm */ + wxPAPER_PENV_2_ROTATED, /* PRC Envelope #2 Rotated 176 x 102 mm */ + wxPAPER_PENV_3_ROTATED, /* PRC Envelope #3 Rotated 176 x 125 mm */ + wxPAPER_PENV_4_ROTATED, /* PRC Envelope #4 Rotated 208 x 110 mm */ + wxPAPER_PENV_5_ROTATED, /* PRC Envelope #5 Rotated 220 x 110 mm */ + wxPAPER_PENV_6_ROTATED, /* PRC Envelope #6 Rotated 230 x 120 mm */ + wxPAPER_PENV_7_ROTATED, /* PRC Envelope #7 Rotated 230 x 160 mm */ + wxPAPER_PENV_8_ROTATED, /* PRC Envelope #8 Rotated 309 x 120 mm */ + wxPAPER_PENV_9_ROTATED, /* PRC Envelope #9 Rotated 324 x 229 mm */ + wxPAPER_PENV_10_ROTATED /* PRC Envelope #10 Rotated 458 x 324 m */ + } wxPaperSize ; typedef enum { @@ -1065,6 +1162,7 @@ enum wxItemKind wxITEM_NORMAL, wxITEM_CHECK, wxITEM_RADIO, + wxITEM_DROPDOWN, wxITEM_MAX }; @@ -1095,27 +1193,18 @@ enum wxHitTest }; -%{ -#if ! wxUSE_HOTKEY -enum wxHotkeyModifier -{ - wxMOD_NONE = 0, - wxMOD_ALT = 1, - wxMOD_CONTROL = 2, - wxMOD_SHIFT = 4, - wxMOD_WIN = 8 -}; -#define wxEVT_HOTKEY 9999 -#endif -%} -enum wxHotkeyModifier +enum wxKeyModifier { - wxMOD_NONE = 0, - wxMOD_ALT = 1, - wxMOD_CONTROL = 2, - wxMOD_SHIFT = 4, - wxMOD_WIN = 8 + wxMOD_NONE, + wxMOD_ALT, + wxMOD_CONTROL, + wxMOD_ALTGR, + wxMOD_SHIFT, + wxMOD_META, + wxMOD_WIN, + wxMOD_CMD, + wxMOD_ALL }; @@ -1127,6 +1216,14 @@ enum wxUpdateUI }; +enum wxLayoutDirection +{ + wxLayout_Default, + wxLayout_LeftToRight, + wxLayout_RightToLeft +}; + + //---------------------------------------------------------------------------