| 1 | ///////////////////////////////////////////////////////////////////////////// |
| 2 | // Name: wxp.i |
| 3 | // Purpose: SWIG interface file for a python wxWindows module |
| 4 | // |
| 5 | // Author: Robin Dunn |
| 6 | // |
| 7 | // Created: 5/22/98 |
| 8 | // RCS-ID: $Id$ |
| 9 | // Copyright: (c) 1998 by Total Control Software |
| 10 | // Licence: wxWindows license |
| 11 | ///////////////////////////////////////////////////////////////////////////// |
| 12 | |
| 13 | %module wx |
| 14 | |
| 15 | %{ |
| 16 | #include "helpers.h" |
| 17 | %} |
| 18 | |
| 19 | |
| 20 | //---------------------------------------------------------------------- |
| 21 | // This is where we include the other wrapper definition files for SWIG |
| 22 | //---------------------------------------------------------------------- |
| 23 | |
| 24 | %include typemaps.i |
| 25 | %include my_typemaps.i |
| 26 | %include _defs.i |
| 27 | |
| 28 | %include pointer.i |
| 29 | |
| 30 | %import misc.i |
| 31 | %import misc2.i |
| 32 | %import windows.i |
| 33 | %import events.i |
| 34 | %import gdi.i |
| 35 | %import mdi.i |
| 36 | %import controls.i |
| 37 | %import controls2.i |
| 38 | %import windows2.i |
| 39 | %import cmndlgs.i |
| 40 | %import stattool.i |
| 41 | %import frames.i |
| 42 | %import windows3.i |
| 43 | %import image.i |
| 44 | %import printfw.i |
| 45 | %import sizers.i |
| 46 | %import streams.i |
| 47 | %import filesys.i |
| 48 | %import utils.i |
| 49 | |
| 50 | %native(_wxStart) __wxStart; |
| 51 | %native(_wxSetDictionary) __wxSetDictionary; |
| 52 | |
| 53 | //--------------------------------------------------------------------------- |
| 54 | |
| 55 | |
| 56 | #define __version__ "0.0.0" // The real value is now in setup.py... |
| 57 | |
| 58 | %readonly |
| 59 | wxPoint wxDefaultPosition; |
| 60 | wxSize wxDefaultSize; |
| 61 | %readwrite |
| 62 | |
| 63 | //--------------------------------------------------------------------------- |
| 64 | //--------------------------------------------------------------------------- |
| 65 | |
| 66 | class wxPyApp : public wxEvtHandler { |
| 67 | public: |
| 68 | %addmethods { |
| 69 | wxPyApp() { |
| 70 | wxPythonApp = new wxPyApp(); |
| 71 | return wxPythonApp; |
| 72 | } |
| 73 | } |
| 74 | |
| 75 | ~wxPyApp(); |
| 76 | |
| 77 | wxString GetAppName(); |
| 78 | #ifdef __WXMSW__ |
| 79 | bool GetAuto3D(); |
| 80 | #endif |
| 81 | wxString GetClassName(); |
| 82 | bool GetExitOnFrameDelete(); |
| 83 | int GetPrintMode(); |
| 84 | wxWindow * GetTopWindow(); |
| 85 | wxString GetVendorName(); |
| 86 | bool GetUseBestVisual(); |
| 87 | |
| 88 | void Dispatch(); |
| 89 | void ExitMainLoop(); |
| 90 | bool Initialized(); |
| 91 | int MainLoop(); |
| 92 | bool Pending(); |
| 93 | bool ProcessIdle(); |
| 94 | |
| 95 | void SetAppName(const wxString& name); |
| 96 | #ifdef __WXMSW__ |
| 97 | void SetAuto3D(bool auto3D); |
| 98 | #endif |
| 99 | void SetClassName(const wxString& name); |
| 100 | void SetExitOnFrameDelete(bool flag); |
| 101 | void SetPrintMode(int mode); |
| 102 | void SetTopWindow(wxWindow* window); |
| 103 | void SetVendorName(const wxString& name); |
| 104 | void SetUseBestVisual(bool flag); |
| 105 | wxIcon GetStdIcon(int which); |
| 106 | }; |
| 107 | |
| 108 | %inline %{ |
| 109 | wxPyApp* wxGetApp() { |
| 110 | return wxPythonApp; |
| 111 | } |
| 112 | %} |
| 113 | |
| 114 | |
| 115 | |
| 116 | //---------------------------------------------------------------------- |
| 117 | // this is used to cleanup after wxWindows when Python shuts down. |
| 118 | |
| 119 | %inline %{ |
| 120 | void wxApp_CleanUp() { |
| 121 | __wxCleanup(); |
| 122 | } |
| 123 | %} |
| 124 | |
| 125 | //---------------------------------------------------------------------- |
| 126 | // This code gets added to the module initialization function |
| 127 | //---------------------------------------------------------------------- |
| 128 | |
| 129 | %{ |
| 130 | |
| 131 | |
| 132 | extern "C" SWIGEXPORT(void) initwindowsc(); |
| 133 | extern "C" SWIGEXPORT(void) initwindows2c(); |
| 134 | extern "C" SWIGEXPORT(void) initeventsc(); |
| 135 | extern "C" SWIGEXPORT(void) initmiscc(); |
| 136 | extern "C" SWIGEXPORT(void) initmisc2c(); |
| 137 | extern "C" SWIGEXPORT(void) initgdic(); |
| 138 | extern "C" SWIGEXPORT(void) initmdic(); |
| 139 | extern "C" SWIGEXPORT(void) initcontrolsc(); |
| 140 | extern "C" SWIGEXPORT(void) initcontrols2c(); |
| 141 | extern "C" SWIGEXPORT(void) initcmndlgsc(); |
| 142 | extern "C" SWIGEXPORT(void) initstattoolc(); |
| 143 | extern "C" SWIGEXPORT(void) initframesc(); |
| 144 | extern "C" SWIGEXPORT(void) initwindows3c(); |
| 145 | extern "C" SWIGEXPORT(void) initimagec(); |
| 146 | extern "C" SWIGEXPORT(void) initprintfwc(); |
| 147 | extern "C" SWIGEXPORT(void) initsizersc(); |
| 148 | extern "C" SWIGEXPORT(void) initclip_dndc(); |
| 149 | extern "C" SWIGEXPORT(void) initstreamsc(); |
| 150 | extern "C" SWIGEXPORT(void) initfilesysc(); |
| 151 | extern "C" SWIGEXPORT(void) initutilsc(); |
| 152 | |
| 153 | |
| 154 | |
| 155 | // Export a C API in a struct. Other modules will be able to load this from |
| 156 | // the wxc module and will then have safe access to these functions, even if |
| 157 | // in another shared library. |
| 158 | static wxPyCoreAPI API = { |
| 159 | SWIG_MakePtr, |
| 160 | SWIG_GetPtr, |
| 161 | SWIG_GetPtrObj, |
| 162 | SWIG_RegisterMapping, |
| 163 | SWIG_addvarlink, |
| 164 | SWIG_newvarlink, |
| 165 | |
| 166 | wxPyBeginAllowThreads, |
| 167 | wxPyEndAllowThreads, |
| 168 | wxPyBeginBlockThreads, |
| 169 | wxPyEndBlockThreads, |
| 170 | |
| 171 | wxPyConstructObject, |
| 172 | wxPy_ConvertList, |
| 173 | |
| 174 | wxString_in_helper, |
| 175 | Py2wxString, |
| 176 | wx2PyString, |
| 177 | |
| 178 | byte_LIST_helper, |
| 179 | int_LIST_helper, |
| 180 | long_LIST_helper, |
| 181 | string_LIST_helper, |
| 182 | wxPoint_LIST_helper, |
| 183 | wxBitmap_LIST_helper, |
| 184 | wxString_LIST_helper, |
| 185 | wxAcceleratorEntry_LIST_helper, |
| 186 | |
| 187 | wxSize_helper, |
| 188 | wxPoint_helper, |
| 189 | wxRealPoint_helper, |
| 190 | wxRect_helper, |
| 191 | wxColour_helper, |
| 192 | |
| 193 | wxPyCBH_setCallbackInfo, |
| 194 | wxPyCBH_findCallback, |
| 195 | wxPyCBH_callCallback, |
| 196 | wxPyCBH_callCallbackObj, |
| 197 | wxPyCBH_delete, |
| 198 | |
| 199 | wxPyClassExists, |
| 200 | wxPyMake_wxObject, |
| 201 | wxPyMake_wxSizer, |
| 202 | wxPyPtrTypeMap_Add, |
| 203 | wxArrayString2PyList_helper, |
| 204 | wxArrayInt2PyList_helper |
| 205 | }; |
| 206 | |
| 207 | |
| 208 | %} |
| 209 | |
| 210 | |
| 211 | |
| 212 | %init %{ |
| 213 | // Make our API structure a CObject so other modules can import it |
| 214 | // from this module. |
| 215 | PyObject* v = PyCObject_FromVoidPtr(&API, NULL); |
| 216 | PyDict_SetItemString(d,"wxPyCoreAPI", v); |
| 217 | Py_XDECREF(v); |
| 218 | |
| 219 | |
| 220 | __wxPreStart(); // initialize the GUI toolkit, if needed. |
| 221 | |
| 222 | |
| 223 | // Since these modules are all linked together, initialize them now |
| 224 | // because Python won't be able to find their shared library files, |
| 225 | // (since there isn't any.) |
| 226 | initwindowsc(); |
| 227 | initwindows2c(); |
| 228 | initeventsc(); |
| 229 | initmiscc(); |
| 230 | initmisc2c(); |
| 231 | initgdic(); |
| 232 | initmdic(); |
| 233 | initcontrolsc(); |
| 234 | initcontrols2c(); |
| 235 | initcmndlgsc(); |
| 236 | initstattoolc(); |
| 237 | initframesc(); |
| 238 | initwindows3c(); |
| 239 | initimagec(); |
| 240 | initprintfwc(); |
| 241 | initsizersc(); |
| 242 | initclip_dndc(); |
| 243 | initstreamsc(); |
| 244 | initfilesysc(); |
| 245 | initutilsc(); |
| 246 | |
| 247 | |
| 248 | PyDict_SetItemString(d,"wxMAJOR_VERSION", PyInt_FromLong((long)wxMAJOR_VERSION )); |
| 249 | PyDict_SetItemString(d,"wxMINOR_VERSION", PyInt_FromLong((long)wxMINOR_VERSION )); |
| 250 | PyDict_SetItemString(d,"wxRELEASE_NUMBER", PyInt_FromLong((long)wxRELEASE_NUMBER )); |
| 251 | PyDict_SetItemString(d,"wxVERSION_NUMBER", PyInt_FromLong((long)wxVERSION_NUMBER )); |
| 252 | #if wxUSE_UNICODE |
| 253 | wxString tempStr(wxVERSION_STRING); |
| 254 | PyDict_SetItemString(d,"wxVERSION_STRING", PyUnicode_FromUnicode(tempStr.c_str(), tempStr.Len())); |
| 255 | #else |
| 256 | PyDict_SetItemString(d,"wxVERSION_STRING", PyString_FromString(wxVERSION_STRING)); |
| 257 | #endif |
| 258 | |
| 259 | |
| 260 | %} |
| 261 | |
| 262 | //---------------------------------------------------------------------- |
| 263 | // And this gets appended to the shadow class file. |
| 264 | //---------------------------------------------------------------------- |
| 265 | |
| 266 | %pragma(python) include="_extras.py"; |
| 267 | |
| 268 | |