X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/94d33c49d11788ae1939e9fffb0b28fe04693f47..138bb8ca69e719ff8c5967cb176f73232f1c178b:/wxPython/src/_defs.i diff --git a/wxPython/src/_defs.i b/wxPython/src/_defs.i index e8fce22cc3..e8b4f7fdd1 100644 --- a/wxPython/src/_defs.i +++ b/wxPython/src/_defs.i @@ -11,19 +11,31 @@ ///////////////////////////////////////////////////////////////////////////// +// 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 @@ -38,7 +50,7 @@ typedef unsigned char byte; #ifndef %pythoncode #define %pythoncode %insert("python") -#endif +#endif #define WXUNUSED(x) x @@ -52,6 +64,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. @@ -59,12 +81,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, PyDropTarget); +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 @@ -296,7 +475,7 @@ enum { wxID_IGNORE, wxID_HIGHEST, - + wxOPEN, wxSAVE, wxHIDE_READONLY, @@ -323,7 +502,8 @@ enum { wxMENU_TEAROFF, wxMB_DOCKABLE, wxNO_FULL_REPAINT_ON_RESIZE, - + wxFULL_REPAINT_ON_RESIZE, + wxLI_HORIZONTAL, wxLI_VERTICAL, @@ -702,6 +882,7 @@ enum wxItemKind wxITEM_MAX }; + enum wxHitTest { wxHT_NOWHERE,