]> git.saurik.com Git - wxWidgets.git/blob - wxPython/src/wx.i
Updated to more OS/2 friendly version.
[wxWidgets.git] / wxPython / src / wx.i
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 %{
17 #include "helpers.h"
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 %import fonts.i
50
51
52 %native(_wxStart) __wxStart;
53 %native(_wxSetDictionary) __wxSetDictionary;
54
55 //---------------------------------------------------------------------------
56
57
58 #define __version__ "0.0.0" // The real value is now in setup.py...
59
60 %readonly
61 wxPoint wxDefaultPosition;
62 wxSize wxDefaultSize;
63 %readwrite
64
65 //---------------------------------------------------------------------------
66 //---------------------------------------------------------------------------
67
68 class wxPyApp : public wxEvtHandler {
69 public:
70 %addmethods {
71 wxPyApp() {
72 wxPythonApp = new wxPyApp();
73 return wxPythonApp;
74 }
75 }
76
77 ~wxPyApp();
78
79 wxString GetAppName();
80 #ifdef __WXMSW__
81 bool GetAuto3D();
82 #endif
83 wxString GetClassName();
84 bool GetExitOnFrameDelete();
85 int GetPrintMode();
86 wxWindow * GetTopWindow();
87 wxString GetVendorName();
88 bool GetUseBestVisual();
89
90 void Dispatch();
91 void ExitMainLoop();
92 bool Initialized();
93 int MainLoop();
94 bool Pending();
95 bool ProcessIdle();
96 bool Yield(bool onlyIfNeeded = FALSE);
97
98 void SetAppName(const wxString& name);
99 #ifdef __WXMSW__
100 void SetAuto3D(bool auto3D);
101 #endif
102 void SetClassName(const wxString& name);
103 void SetExitOnFrameDelete(bool flag);
104 void SetPrintMode(int mode);
105 void SetTopWindow(wxWindow* window);
106 void SetVendorName(const wxString& name);
107 void SetUseBestVisual(bool flag);
108 };
109
110 %inline %{
111 wxPyApp* wxGetApp() {
112 //return wxPythonApp;
113 return (wxPyApp*)wxTheApp;
114 }
115 %}
116
117
118 //----------------------------------------------------------------------
119 // this is used to cleanup after wxWindows when Python shuts down.
120
121 %inline %{
122 void wxApp_CleanUp() {
123 __wxCleanup();
124 }
125 %}
126
127 //----------------------------------------------------------------------
128 // This code gets added to the module initialization function
129 //----------------------------------------------------------------------
130
131 %{
132
133
134 extern "C" SWIGEXPORT(void) initwindowsc();
135 extern "C" SWIGEXPORT(void) initwindows2c();
136 extern "C" SWIGEXPORT(void) initeventsc();
137 extern "C" SWIGEXPORT(void) initmiscc();
138 extern "C" SWIGEXPORT(void) initmisc2c();
139 extern "C" SWIGEXPORT(void) initgdic();
140 extern "C" SWIGEXPORT(void) initmdic();
141 extern "C" SWIGEXPORT(void) initcontrolsc();
142 extern "C" SWIGEXPORT(void) initcontrols2c();
143 extern "C" SWIGEXPORT(void) initcmndlgsc();
144 extern "C" SWIGEXPORT(void) initstattoolc();
145 extern "C" SWIGEXPORT(void) initframesc();
146 extern "C" SWIGEXPORT(void) initwindows3c();
147 extern "C" SWIGEXPORT(void) initimagec();
148 extern "C" SWIGEXPORT(void) initprintfwc();
149 extern "C" SWIGEXPORT(void) initsizersc();
150 extern "C" SWIGEXPORT(void) initclip_dndc();
151 extern "C" SWIGEXPORT(void) initstreamsc();
152 extern "C" SWIGEXPORT(void) initfilesysc();
153 extern "C" SWIGEXPORT(void) initutilsc();
154 extern "C" SWIGEXPORT(void) initfontsc();
155
156
157
158 // Export a C API in a struct. Other modules will be able to load this from
159 // the wxc module and will then have safe access to these functions, even if
160 // in another shared library.
161 static wxPyCoreAPI API = {
162 (p_SWIG_MakePtr_t)SWIG_MakePtr,
163 (p_SWIG_GetPtr_t)SWIG_GetPtr,
164 (p_SWIG_GetPtrObj_t)SWIG_GetPtrObj,
165 (p_SWIG_RegisterMapping_t)SWIG_RegisterMapping,
166 (p_SWIG_addvarlink_t)SWIG_addvarlink,
167 (p_SWIG_newvarlink_t)SWIG_newvarlink,
168
169 wxPyBeginAllowThreads,
170 wxPyEndAllowThreads,
171 wxPyBeginBlockThreads,
172 wxPyEndBlockThreads,
173
174 wxPyConstructObject,
175 wxPy_ConvertList,
176
177 wxString_in_helper,
178 Py2wxString,
179 wx2PyString,
180
181 byte_LIST_helper,
182 int_LIST_helper,
183 long_LIST_helper,
184 string_LIST_helper,
185 wxPoint_LIST_helper,
186 wxBitmap_LIST_helper,
187 wxString_LIST_helper,
188 wxAcceleratorEntry_LIST_helper,
189
190 wxSize_helper,
191 wxPoint_helper,
192 wxRealPoint_helper,
193 wxRect_helper,
194 wxColour_helper,
195
196 wxPyCBH_setCallbackInfo,
197 wxPyCBH_findCallback,
198 wxPyCBH_callCallback,
199 wxPyCBH_callCallbackObj,
200 wxPyCBH_delete,
201
202 wxPyClassExists,
203 wxPyMake_wxObject,
204 wxPyMake_wxSizer,
205 wxPyPtrTypeMap_Add,
206 wxArrayString2PyList_helper,
207 wxArrayInt2PyList_helper,
208
209 wxPyClientData_dtor,
210 wxPyUserData_dtor,
211 wxPyOORClientData_dtor,
212
213 wxPyCBInputStream_create
214 };
215
216
217 %}
218
219
220
221 %init %{
222 // Make our API structure a CObject so other modules can import it
223 // from this module.
224 PyObject* v = PyCObject_FromVoidPtr(&API, NULL);
225 PyDict_SetItemString(d,"wxPyCoreAPI", v);
226 Py_XDECREF(v);
227
228
229 __wxPreStart(); // initialize the GUI toolkit, if needed.
230
231
232 // Since these modules are all linked together, initialize them now
233 // because Python won't be able to find their shared library files,
234 // (since there isn't any.)
235 initwindowsc();
236 initwindows2c();
237 initeventsc();
238 initmiscc();
239 initmisc2c();
240 initgdic();
241 initmdic();
242 initcontrolsc();
243 initcontrols2c();
244 initcmndlgsc();
245 initstattoolc();
246 initframesc();
247 initwindows3c();
248 initimagec();
249 initprintfwc();
250 initsizersc();
251 initclip_dndc();
252 initstreamsc();
253 initfilesysc();
254 initutilsc();
255 initfontsc();
256
257
258 PyDict_SetItemString(d,"wxMAJOR_VERSION", PyInt_FromLong((long)wxMAJOR_VERSION ));
259 PyDict_SetItemString(d,"wxMINOR_VERSION", PyInt_FromLong((long)wxMINOR_VERSION ));
260 PyDict_SetItemString(d,"wxRELEASE_NUMBER", PyInt_FromLong((long)wxRELEASE_NUMBER ));
261 PyDict_SetItemString(d,"wxVERSION_NUMBER", PyInt_FromLong((long)wxVERSION_NUMBER ));
262 #if wxUSE_UNICODE
263 wxString tempStr(wxVERSION_STRING);
264 PyDict_SetItemString(d,"wxVERSION_STRING", PyUnicode_FromUnicode(tempStr.c_str(), tempStr.Len()));
265 #else
266 PyDict_SetItemString(d,"wxVERSION_STRING", PyString_FromString(wxVERSION_STRING));
267 #endif
268
269
270 %}
271
272 //----------------------------------------------------------------------
273 // And this gets appended to the shadow class file.
274 //----------------------------------------------------------------------
275
276 %pragma(python) include="_extras.py";
277