]> git.saurik.com Git - wxWidgets.git/blob - wxPython/wxSWIG/swig_lib/python/defarg.swg
unicode compilation fix
[wxWidgets.git] / wxPython / wxSWIG / swig_lib / python / defarg.swg
1 /* This file defines an internal function for processing default arguments
2 with shadow classes.
3
4 There seems to be no straightforward way to write a shadow functions
5 involving default arguments. For example :
6
7 def foo(arg1,arg2,*args):
8 shadowc.foo(arg1,arg2,args)
9
10 This fails because args is now a tuple and SWIG doesn't know what to
11 do with it.
12
13 This file allows a different approach :
14
15 def foo(arg1,arg2,*args):
16 shadowc.__call_defarg(shadowc.foo,(arg1,arg2,)+args)
17
18 Basically, we form a new tuple from the object, call this special
19 __call_defarg method and it passes control to the real wrapper function.
20 An ugly hack, but it works.
21 */
22
23 static PyObject *swig_call_defargs(PyObject *self, PyObject *args) {
24 PyObject *func;
25 PyObject *parms;
26
27 if (!PyArg_ParseTuple(args,"OO",&func,&parms))
28 return NULL;
29
30 if (!PyCallable_Check(func)) {
31 PyErr_SetString(PyExc_TypeError, "__call_defarg : Need a callable object!");
32 return NULL;
33 }
34 return PyEval_CallObject(func,parms);
35
36 }