X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d14a1e28567de23c586bc80017073d0c39f8d18f..8179a16812e66ff0ac32bb09803e95756350c76c:/wxPython/src/_defs.i?ds=sidebyside diff --git a/wxPython/src/_defs.i b/wxPython/src/_defs.i index 345ec6737e..689847ac6d 100644 --- a/wxPython/src/_defs.i +++ b/wxPython/src/_defs.i @@ -11,35 +11,47 @@ ///////////////////////////////////////////////////////////////////////////// +// Globally turn on the autodoc feature +%feature("autodoc", "1"); // 0 == no param types, 1 == show param types + //--------------------------------------------------------------------------- // some type definitions to simplify things for SWIG -typedef int wxWindowID; -typedef int wxCoord; -typedef int wxInt32; -typedef unsigned int wxUint32; +// typedef int wxWindowID; +// typedef int wxCoord; +// typedef int wxInt32; +// typedef unsigned int wxUint32; typedef int wxEventType; typedef unsigned int size_t; typedef unsigned int time_t; typedef unsigned char byte; +#define wxWindowID int +#define wxCoord int +#define wxInt32 int +#define wxUint32 unsigned int +//#define wxEventType int +//#define size_t unsigned int +//#define time_t unsigned int +//#define byte unsigned char + //---------------------------------------------------------------------- // Various SWIG macros and such -#define %addtofunc %feature("addtofunc") +#define %pythonAppend %feature("pythonappend") +#define %pythonPrepend %feature("pythonprepend") #define %kwargs %feature("kwargs") #define %nokwargs %feature("nokwargs") -#define %noautorepr %feature("noautorepr") -#ifndef %shadow -#define %shadow %insert("shadow") -#endif +//#ifndef %shadow +//#define %shadow %insert("shadow") +//#endif #ifndef %pythoncode #define %pythoncode %insert("python") -#endif +#endif #define WXUNUSED(x) x @@ -53,6 +65,16 @@ typedef unsigned char byte; %mutable; %enddef +%define MAKE_CONST_WXSTRING2(strname, val) + %{ static const wxString wxPy##strname(val); %} + %immutable; + %name(strname) const wxString wxPy##strname; + %mutable; +%enddef + +%define MAKE_CONST_WXSTRING_NOSWIG(strname) + %{ static const wxString wxPy##strname(wx##strname); %} +%enddef // Generate code in the module init for the event types, since they may not be // initialized yet when they are used in the static swig_const_table. @@ -60,12 +82,169 @@ typedef unsigned char byte; %typemap(constcode) wxEventType "PyDict_SetItemString(d, \"$symname\", PyInt_FromLong($value));"; + +// Macros for the docstring and autodoc features of SWIG. + +// Set the docsring for the given full or partial declaration +%define DocStr(decl, docstr) + %feature("docstring") decl docstr; + //%feature("refdoc") decl ""; +%enddef + +// Set the autodoc string for a full or partial declaration +%define DocA(decl, astr) + %feature("autodoc") decl astr; +%enddef + +// Set both the autodoc and docstring for a full or partial declaration +%define DocAStr(decl, astr, docstr) + %feature("autodoc") decl astr; + %feature("docstring") decl docstr +%enddef + +// Set the detailed reference docs for full or partial declaration +#define DocRef(decl, str) %feature("docref") decl str + + + + +// Set the docstring for a decl and then define the decl too. Must use the +// full declaration of the item. +%define DocDeclStr(type, decl, docstr) + %feature("docstring") decl docstr; + type decl +%enddef + +// As above, but also give the decl a new %name +%define DocDeclStrName(type, decl, docstr, newname) + %feature("docstring") decl docstr; + %name(newname) type decl +%enddef + + +// Set the autodoc string for a decl and then define the decl too. Must use the +// full declaration of the item. +%define DocDeclA(type, decl, astr) + %feature("autodoc") decl astr; + type decl +%enddef + +// As above, but also give the decl a new %name +%define DocDeclAName(type, decl, astr, newname) + %feature("autodoc") decl astr; + %name(newname) type decl +%enddef + + + +// Set the autodoc and the docstring for a decl and then define the decl too. +// Must use the full declaration of the item. +%define DocDeclAStr(type, decl, astr, docstr) + %feature("autodoc") decl astr; + %feature("docstring") decl docstr; + type decl +%enddef + +// As above, but also give the decl a new %name +%define DocDeclAStrName(type, decl, astr, docstr, newname) + %feature("autodoc") decl astr; + %feature("docstring") decl docstr; + %name(newname) type decl +%enddef + + + + +// Set the docstring for a constructor decl and then define the decl too. +// Must use the full declaration of the item. +%define DocCtorStr(decl, docstr) + %feature("docstring") decl docstr; + decl +%enddef + +// As above, but also give the decl a new %name +%define DocCtorStrName(decl, docstr, newname) + %feature("docstring") decl docstr; + %name(newname) decl +%enddef + + +// Set the autodoc string for a decl and then define the decl too. Must use the +// full declaration of the item. +%define DocCtorA(decl, astr) + %feature("autodoc") decl astr; + decl +%enddef + +// As above, but also give the decl a new %name +%define DocCtorAname(decl, astr, newname) + %feature("autodoc") decl astr; + %name(newname) decl +%enddef + + + +// Set the autodoc and the docstring for a decl and then define the decl too. +// Must use the full declaration of the item. +%define DocCtorAStr(decl, astr, docstr) + %feature("autodoc") decl astr; + %feature("docstring") decl docstr; + decl +%enddef + +// As above, but also give the decl a new %name +%define DocCtorAStrName(decl, astr, docstr, newname) + %feature("autodoc") decl astr; + %feature("docstring") decl docstr; + %name(newname) decl +%enddef + + +// A placeholder for the detailed reference docs. +%define RefDoc(decl, docstr) + %feature("refdoc") decl docstr; +%enddef + + %define %newgroup %pythoncode { %#--------------------------------------------------------------------------- -} +} %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 +// not in the module being processed. + +#ifdef BUILDING_RENAMERS + #define FORWARD_DECLARE(wxName, Name) +#else + %define FORWARD_DECLARE(wxName, Name) + %rename(Name) wxName; + class wxName; + %enddef +#endif + +FORWARD_DECLARE(wxString, String); +FORWARD_DECLARE(wxBitmap, Bitmap); +FORWARD_DECLARE(wxDateTime, DateTime); +FORWARD_DECLARE(wxInputStream, InputStream); +FORWARD_DECLARE(wxDC, DC); +FORWARD_DECLARE(wxCursor, Cursor); +FORWARD_DECLARE(wxRegion, Region); +FORWARD_DECLARE(wxColour, Colour); +FORWARD_DECLARE(wxFont, Font); +FORWARD_DECLARE(wxCaret, Caret); +FORWARD_DECLARE(wxToolTip, ToolTip); +FORWARD_DECLARE(wxPyDropTarget, DropTarget); +FORWARD_DECLARE(wxImageList, ImageList); +FORWARD_DECLARE(wxMemoryDC, MemoryDC); +FORWARD_DECLARE(wxHtmlTagHandler, HtmlTagHandler); +FORWARD_DECLARE(wxConfigBase, ConfigBase); +FORWARD_DECLARE(wxIcon, Icon); + + //--------------------------------------------------------------------------- // General numeric #define's and etc. Making them all enums makes SWIG use the @@ -297,7 +476,7 @@ enum { wxID_IGNORE, wxID_HIGHEST, - + wxOPEN, wxSAVE, wxHIDE_READONLY, @@ -324,7 +503,8 @@ enum { wxMENU_TEAROFF, wxMB_DOCKABLE, wxNO_FULL_REPAINT_ON_RESIZE, - + wxFULL_REPAINT_ON_RESIZE, + wxLI_HORIZONTAL, wxLI_VERTICAL, @@ -364,6 +544,13 @@ enum { }; +#ifdef __WXGTK__ +#define wxDEFAULT_STATUSBAR_STYLE wxST_SIZEGRIP|wxFULL_REPAINT_ON_RESIZE +#else +#define wxDEFAULT_STATUSBAR_STYLE wxST_SIZEGRIP +#endif + + enum wxGeometryCentre { @@ -696,13 +883,14 @@ typedef enum { // menu and toolbar item kinds enum wxItemKind { - wxITEM_SEPARATOR = -1, + wxITEM_SEPARATOR, wxITEM_NORMAL, wxITEM_CHECK, wxITEM_RADIO, wxITEM_MAX }; + enum wxHitTest { wxHT_NOWHERE,