/////////////////////////////////////////////////////////////////////////////
+//---------------------------------------------------------------------------
// Globally turn on the autodoc feature
+
%feature("autodoc", "1"); // 0 == no param types, 1 == show param types
+//---------------------------------------------------------------------------
+// Tell SWIG to wrap all the wrappers with our thread protection by default
+
+%exception {
+ PyThreadState* __tstate = wxPyBeginAllowThreads();
+ $action
+ wxPyEndAllowThreads(__tstate);
+ if (PyErr_Occurred()) SWIG_fail;
+}
+
+
+// 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.
+%define MustHaveApp(name)
+%exception name {
+ if (!wxPyCheckForApp()) SWIG_fail;
+ PyThreadState* __tstate = wxPyBeginAllowThreads();
+ $action
+ wxPyEndAllowThreads(__tstate);
+ if (PyErr_Occurred()) SWIG_fail;
+}
+%enddef
+
+
//---------------------------------------------------------------------------
// some type definitions to simplify things for SWIG
-// 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;
+typedef unsigned long wxUIntPtr;
#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
//----------------------------------------------------------------------
#define %pythonPrepend %feature("pythonprepend")
#define %kwargs %feature("kwargs")
#define %nokwargs %feature("nokwargs")
+#define %noautodoc %feature("noautodoc")
+
//#ifndef %shadow
//#define %shadow %insert("shadow")
%define MAKE_CONST_WXSTRING(strname)
%{ static const wxString wxPy##strname(wx##strname); %}
%immutable;
- %name(strname) const wxString wxPy##strname;
+ %rename(strname) wxPy##strname;
+ const wxString wxPy##strname;
%mutable;
%enddef
%define MAKE_CONST_WXSTRING2(strname, val)
%{ static const wxString wxPy##strname(val); %}
%immutable;
- %name(strname) const wxString wxPy##strname;
+ %rename(strname) wxPy##strname;
+ const wxString wxPy##strname;
%mutable;
%enddef
-// Macros for the docstring and autodoc features of SWIG.
+//----------------------------------------------------------------------
+// Macros for the docstring and autodoc features of SWIG. These will
+// help make the code look more readable, and pretty, as well as help
+// reduce typing in some cases.
// Set the docsring for the given full or partial declaration
-%define DocStr(decl, docstr)
- %feature("docstring") decl docstr;
- //%feature("refdoc") decl "";
-%enddef
+#ifdef _DO_FULL_DOCS
+ %define DocStr(decl, docstr, details)
+ %feature("docstring") decl docstr details;
+ %enddef
+#else
+ %define DocStr(decl, docstr, details)
+ %feature("docstring") decl docstr;
+ %enddef
+#endif
+
// 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 both the autodoc and docstring for a full or partial declaration
+#ifdef _DO_FULL_DOCS
+ %define DocAStr(decl, astr, docstr, details)
+ %feature("autodoc") decl astr;
+ %feature("docstring") decl docstr details
+ %enddef
+#else
+ %define DocAStr(decl, astr, docstr, details)
+ %feature("autodoc") decl astr;
+ %feature("docstring") decl docstr
+ %enddef
+#endif
+
// 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
+#ifdef _DO_FULL_DOCS
+ %define DocDeclStr(type, decl, docstr, details)
+ %feature("docstring") decl docstr details;
+ type decl
+ %enddef
+#else
+ %define DocDeclStr(type, decl, docstr, details)
+ %feature("docstring") decl docstr;
+ type decl
+ %enddef
+#endif
+
+
// 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
-
+#ifdef _DO_FULL_DOCS
+ %define DocDeclStrName(type, decl, docstr, details, newname)
+ %feature("docstring") decl docstr details;
+ %rename(newname) decl;
+ type decl
+ %enddef
+#else
+ %define DocDeclStrName(type, decl, docstr, details, newname)
+ %feature("docstring") decl docstr;
+ %rename(newname) decl;
+ type decl
+ %enddef
+#endif
+
// Set the autodoc string for a decl and then define the decl too. Must use the
// full declaration of the item.
// As above, but also give the decl a new %name
%define DocDeclAName(type, decl, astr, newname)
%feature("autodoc") decl astr;
- %name(newname) type decl
+ %rename(newname) decl;
+ 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
+#ifdef _DO_FULL_DOCS
+ %define DocDeclAStr(type, decl, astr, docstr, details)
+ %feature("autodoc") decl astr;
+ %feature("docstring") decl docstr details;
+ type decl
+ %enddef
+#else
+ %define DocDeclAStr(type, decl, astr, docstr, details)
+ %feature("autodoc") decl astr;
+ %feature("docstring") decl docstr;
+ type decl
+ %enddef
+#endif
+
// 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
-
+#ifdef _DO_FULL_DOCS
+ %define DocDeclAStrName(type, decl, astr, docstr, details, newname)
+ %feature("autodoc") decl astr;
+ %feature("docstring") decl docstr details;
+ %rename(newname) decl;
+ type decl
+ %enddef
+#else
+ %define DocDeclAStrName(type, decl, astr, docstr, details, newname)
+ %feature("autodoc") decl astr;
+ %feature("docstring") decl docstr;
+ %rename(newname) decl;
+ type decl
+ %enddef
+#endif
// 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
+#ifdef _DO_FULL_DOCS
+ %define DocCtorStr(decl, docstr, details)
+ %feature("docstring") decl docstr details;
+ decl
+ %enddef
+#else
+ %define DocCtorStr(decl, docstr, details)
+ %feature("docstring") decl docstr;
+ decl
+ %enddef
+#endif
+
// As above, but also give the decl a new %name
-%define DocCtorStrName(decl, docstr, newname)
- %feature("docstring") decl docstr;
- %name(newname) decl
-%enddef
+#ifdef _DO_FULL_DOCS
+ %define DocCtorStrName(decl, docstr, details, newname)
+ %feature("docstring") decl docstr details;
+ %rename(newname) decl;
+ decl
+ %enddef
+#else
+ %define DocCtorStrName(decl, docstr, details, newname)
+ %feature("docstring") decl docstr;
+ %rename(newname) decl;
+ decl
+ %enddef
+#endif
-
-// Set the autodoc string for a decl and then define the decl too. Must use the
-// full declaration of the item.
+
+// Set the autodoc string for a constructor 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)
+%define DocCtorAName(decl, astr, newname)
%feature("autodoc") decl astr;
- %name(newname) decl
+ %rename(newname) decl;
+ 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
+// Set the autodoc and the docstring for a constructor decl and then define
+// the decl too. Must use the full declaration of the item.
+#ifdef _DO_FULL_DOCS
+ %define DocCtorAStr(decl, astr, docstr, details)
+ %feature("autodoc") decl astr;
+ %feature("docstring") decl docstr details;
+ decl
+ %enddef
+#else
+ %define DocCtorAStr(decl, astr, docstr, details)
+ %feature("autodoc") decl astr;
+ %feature("docstring") decl docstr;
+ decl
+ %enddef
+#endif
-// 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
+
+// As above, but also give the decl a new %name
+#ifdef _DO_FULL_DOCS
+ %define DocCtorAStrName(decl, astr, docstr, details, newname)
+ %feature("autodoc") decl astr;
+ %feature("docstring") decl docstr details;
+ %rename(newname) decl;
+ decl
+ %enddef
+#else
+ %define DocCtorAStrName(decl, astr, docstr, details, newname)
+ %feature("autodoc") decl astr;
+ %feature("docstring") decl docstr;
+ %rename(newname) decl;
+ decl
+ %enddef
+#endif
-// A placeholder for the detailed reference docs.
-%define RefDoc(decl, docstr)
- %feature("refdoc") decl docstr;
-%enddef
-
+
%define %newgroup
%pythoncode {
}
%enddef
+
+// A set of macros to make using %rename easier, since %name has been
+// deprecated...
+%define %Rename(newname, type, decl)
+ %rename(newname) decl;
+ type decl
+%enddef
+
+%define %RenameCtor(newname, decl)
+ %rename(newname) decl;
+ decl
+%enddef
+
+#ifdef _DO_FULL_DOCS
+ %define %RenameDocCtor(newname, docstr, details, decl)
+ %feature("docstring") decl docstr details;
+ %rename(newname) decl;
+ decl
+ %enddef
+#else
+ %define %RenameDocCtor(newname, docstr, details, decl)
+ %feature("docstring") decl docstr;
+ %rename(newname) decl;
+ decl
+ %enddef
+#endif
+
//---------------------------------------------------------------------------
// 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.
+// not in the module being processed or seen by %import's.
#ifdef BUILDING_RENAMERS
#define FORWARD_DECLARE(wxName, Name)
FORWARD_DECLARE(wxHtmlTagHandler, HtmlTagHandler);
FORWARD_DECLARE(wxConfigBase, ConfigBase);
FORWARD_DECLARE(wxIcon, Icon);
+FORWARD_DECLARE(wxStaticBox, StaticBox);
//---------------------------------------------------------------------------
+%{
+#if !WXWIN_COMPATIBILITY_2_4
+ #define wxHIDE_READONLY 0
+#endif
+%}
+
+
// General numeric #define's and etc. Making them all enums makes SWIG use the
// real macro when making the Python Int
wxSTATIC_BORDER,
wxTRANSPARENT_WINDOW,
wxNO_BORDER,
- wxUSER_COLOURS,
- wxNO_3D,
-
+ wxDEFAULT_CONTROL_BORDER,
+ wxDEFAULT_STATUSBAR_STYLE,
+
wxTAB_TRAVERSAL,
wxWANTS_CHARS,
wxPOPUP_WINDOW,
wxCENTRE_ON_SCREEN,
wxCENTER_ON_SCREEN,
- wxSTAY_ON_TOP,
- wxICONIZE,
- wxMINIMIZE,
- wxMAXIMIZE,
- wxCLOSE_BOX,
- wxTHICK_FRAME,
- wxSYSTEM_MENU,
- wxMINIMIZE_BOX,
- wxMAXIMIZE_BOX,
- wxTINY_CAPTION_HORIZ,
- wxTINY_CAPTION_VERT,
- wxRESIZE_BOX,
- wxRESIZE_BORDER,
- wxDIALOG_MODAL,
- wxDIALOG_MODELESS,
- wxDIALOG_NO_PARENT,
- wxDEFAULT_FRAME_STYLE,
- wxDEFAULT_DIALOG_STYLE,
-
- wxFRAME_TOOL_WINDOW,
- wxFRAME_FLOAT_ON_PARENT,
- wxFRAME_NO_WINDOW_MENU,
- wxFRAME_NO_TASKBAR,
- wxFRAME_SHAPED,
-
- wxED_CLIENT_MARGIN,
- wxED_BUTTONS_BOTTOM,
- wxED_BUTTONS_RIGHT,
- wxED_STATIC_LINE,
- wxEXT_DIALOG_STYLE,
-
wxCLIP_CHILDREN,
wxCLIP_SIBLINGS,
+ wxALWAYS_SHOW_SB,
+
wxRETAINED,
wxBACKINGSTORE,
wxRA_VERTICAL,
wxRA_SPECIFY_ROWS,
wxRA_SPECIFY_COLS,
+ wxRA_USE_CHECKBOX,
wxRB_GROUP,
wxRB_SINGLE,
- wxSL_HORIZONTAL,
- wxSL_VERTICAL,
- wxSL_AUTOTICKS,
- wxSL_LABELS,
- wxSL_LEFT,
- wxSL_TOP,
- wxSL_RIGHT,
- wxSL_BOTTOM,
- wxSL_BOTH,
- wxSL_SELRANGE,
wxSB_HORIZONTAL,
wxSB_VERTICAL,
+ wxRB_USE_CHECKBOX,
wxST_SIZEGRIP,
wxST_NO_AUTORESIZE,
wxID_RETRY,
wxID_IGNORE,
+ wxID_ADD,
+ wxID_REMOVE,
+
+ wxID_UP,
+ wxID_DOWN,
+ wxID_HOME,
+ wxID_REFRESH,
+ wxID_STOP,
+ wxID_INDEX,
+
+ wxID_BOLD,
+ wxID_ITALIC,
+ wxID_JUSTIFY_CENTER,
+ wxID_JUSTIFY_FILL,
+ wxID_JUSTIFY_RIGHT,
+ wxID_JUSTIFY_LEFT,
+ wxID_UNDERLINE,
+ wxID_INDENT,
+ wxID_UNINDENT,
+ wxID_ZOOM_100,
+ wxID_ZOOM_FIT,
+ wxID_ZOOM_IN,
+ wxID_ZOOM_OUT,
+ wxID_UNDELETE,
+ wxID_REVERT_TO_SAVED,
+
wxID_HIGHEST,
wxOPEN,
wxPD_ELAPSED_TIME,
wxPD_ESTIMATED_TIME,
wxPD_REMAINING_TIME,
+ wxPD_SMOOTH,
+ wxPD_CAN_SKIP,
wxDD_NEW_DIR_BUTTON,
wxDD_DEFAULT_STYLE,
};
-#ifdef __WXGTK__
-#define wxDEFAULT_STATUSBAR_STYLE wxST_SIZEGRIP|wxFULL_REPAINT_ON_RESIZE
-#else
-#define wxDEFAULT_STATUSBAR_STYLE wxST_SIZEGRIP
-#endif
-
-
enum wxGeometryCentre
{
wxGROW,
wxEXPAND,
wxSHAPED,
- wxFIXED_SIZE,
+ wxFIXED_MINSIZE,
wxTILE,
wxADJUST_MINSIZE,
};
};
+enum wxBackgroundStyle
+{
+ wxBG_STYLE_SYSTEM,
+ wxBG_STYLE_COLOUR,
+ wxBG_STYLE_CUSTOM
+};
+
+
enum {
wxDEFAULT ,
wxDECORATIVE,
} form_ops_t;
enum wxKeyCode {
- WXK_BACK = 8,
- WXK_TAB = 9,
- WXK_RETURN = 13,
- WXK_ESCAPE = 27,
- WXK_SPACE = 32,
- WXK_DELETE = 127,
-
- WXK_START = 300,
- WXK_LBUTTON,
- WXK_RBUTTON,
- WXK_CANCEL,
- WXK_MBUTTON,
- WXK_CLEAR,
- WXK_SHIFT,
- WXK_ALT,
- WXK_CONTROL,
- WXK_MENU,
- WXK_PAUSE,
- WXK_CAPITAL,
- WXK_PRIOR, /* Page up */
- WXK_NEXT, /* Page down */
- WXK_END,
- WXK_HOME,
- WXK_LEFT,
- WXK_UP,
- WXK_RIGHT,
- WXK_DOWN,
- WXK_SELECT,
- WXK_PRINT,
- WXK_EXECUTE,
- WXK_SNAPSHOT,
- WXK_INSERT,
- WXK_HELP,
- WXK_NUMPAD0,
- WXK_NUMPAD1,
- WXK_NUMPAD2,
- WXK_NUMPAD3,
- WXK_NUMPAD4,
- WXK_NUMPAD5,
- WXK_NUMPAD6,
- WXK_NUMPAD7,
- WXK_NUMPAD8,
- WXK_NUMPAD9,
- WXK_MULTIPLY,
- WXK_ADD,
- WXK_SEPARATOR,
- WXK_SUBTRACT,
- WXK_DECIMAL,
- WXK_DIVIDE,
- WXK_F1,
- WXK_F2,
- WXK_F3,
- WXK_F4,
- WXK_F5,
- WXK_F6,
- WXK_F7,
- WXK_F8,
- WXK_F9,
- WXK_F10,
- WXK_F11,
- WXK_F12,
- WXK_F13,
- WXK_F14,
- WXK_F15,
- WXK_F16,
- WXK_F17,
- WXK_F18,
- WXK_F19,
- WXK_F20,
- WXK_F21,
- WXK_F22,
- WXK_F23,
- WXK_F24,
- WXK_NUMLOCK,
- WXK_SCROLL,
- WXK_PAGEUP,
- WXK_PAGEDOWN,
-
- WXK_NUMPAD_SPACE,
- WXK_NUMPAD_TAB,
- WXK_NUMPAD_ENTER,
- WXK_NUMPAD_F1,
- WXK_NUMPAD_F2,
- WXK_NUMPAD_F3,
- WXK_NUMPAD_F4,
- WXK_NUMPAD_HOME,
- WXK_NUMPAD_LEFT,
- 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,
- WXK_NUMPAD_INSERT,
- WXK_NUMPAD_DELETE,
- WXK_NUMPAD_EQUAL,
- WXK_NUMPAD_MULTIPLY,
- WXK_NUMPAD_ADD,
- WXK_NUMPAD_SEPARATOR,
- WXK_NUMPAD_SUBTRACT,
- WXK_NUMPAD_DECIMAL,
- WXK_NUMPAD_DIVIDE,
-
- WXK_WINDOWS_LEFT,
- WXK_WINDOWS_RIGHT,
- WXK_WINDOWS_MENU
-
+ WXK_BACK = 8,
+ WXK_TAB = 9,
+ WXK_RETURN = 13,
+ WXK_ESCAPE = 27,
+ WXK_SPACE = 32,
+ WXK_DELETE = 127,
+
+ WXK_START = 300,
+ WXK_LBUTTON,
+ WXK_RBUTTON,
+ WXK_CANCEL,
+ WXK_MBUTTON,
+ WXK_CLEAR,
+ WXK_SHIFT,
+ WXK_ALT,
+ WXK_CONTROL,
+ WXK_MENU,
+ WXK_PAUSE,
+ WXK_CAPITAL,
+ WXK_PRIOR, /* Page up */
+ WXK_NEXT, /* Page down */
+ WXK_END,
+ WXK_HOME,
+ WXK_LEFT,
+ WXK_UP,
+ WXK_RIGHT,
+ WXK_DOWN,
+ WXK_SELECT,
+ WXK_PRINT,
+ WXK_EXECUTE,
+ WXK_SNAPSHOT,
+ WXK_INSERT,
+ WXK_HELP,
+ WXK_NUMPAD0,
+ WXK_NUMPAD1,
+ WXK_NUMPAD2,
+ WXK_NUMPAD3,
+ WXK_NUMPAD4,
+ WXK_NUMPAD5,
+ WXK_NUMPAD6,
+ WXK_NUMPAD7,
+ WXK_NUMPAD8,
+ WXK_NUMPAD9,
+ WXK_MULTIPLY,
+ WXK_ADD,
+ WXK_SEPARATOR,
+ WXK_SUBTRACT,
+ WXK_DECIMAL,
+ WXK_DIVIDE,
+ WXK_F1,
+ WXK_F2,
+ WXK_F3,
+ WXK_F4,
+ WXK_F5,
+ WXK_F6,
+ WXK_F7,
+ WXK_F8,
+ WXK_F9,
+ WXK_F10,
+ WXK_F11,
+ WXK_F12,
+ WXK_F13,
+ WXK_F14,
+ WXK_F15,
+ WXK_F16,
+ WXK_F17,
+ WXK_F18,
+ WXK_F19,
+ WXK_F20,
+ WXK_F21,
+ WXK_F22,
+ WXK_F23,
+ WXK_F24,
+ WXK_NUMLOCK,
+ WXK_SCROLL,
+ WXK_PAGEUP,
+ WXK_PAGEDOWN,
+
+ WXK_NUMPAD_SPACE,
+ WXK_NUMPAD_TAB,
+ WXK_NUMPAD_ENTER,
+ WXK_NUMPAD_F1,
+ WXK_NUMPAD_F2,
+ WXK_NUMPAD_F3,
+ WXK_NUMPAD_F4,
+ WXK_NUMPAD_HOME,
+ WXK_NUMPAD_LEFT,
+ 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,
+ WXK_NUMPAD_INSERT,
+ WXK_NUMPAD_DELETE,
+ WXK_NUMPAD_EQUAL,
+ WXK_NUMPAD_MULTIPLY,
+ WXK_NUMPAD_ADD,
+ WXK_NUMPAD_SEPARATOR,
+ WXK_NUMPAD_SUBTRACT,
+ WXK_NUMPAD_DECIMAL,
+ WXK_NUMPAD_DIVIDE,
+
+ WXK_WINDOWS_LEFT,
+ WXK_WINDOWS_RIGHT,
+ WXK_WINDOWS_MENU,
+
+ WXK_COMMAND,
+
+ // Hardware-specific buttons
+ WXK_SPECIAL1 = 193,
+ WXK_SPECIAL2,
+ WXK_SPECIAL3,
+ WXK_SPECIAL4,
+ WXK_SPECIAL5,
+ WXK_SPECIAL6,
+ WXK_SPECIAL7,
+ WXK_SPECIAL8,
+ WXK_SPECIAL9,
+ WXK_SPECIAL10,
+ WXK_SPECIAL11,
+ WXK_SPECIAL12,
+ WXK_SPECIAL13,
+ WXK_SPECIAL14,
+ WXK_SPECIAL15,
+ WXK_SPECIAL16,
+ WXK_SPECIAL17,
+ WXK_SPECIAL18,
+ WXK_SPECIAL19,
+ WXK_SPECIAL20
};