//---------------------------------------------------------------------------
PyObject* wxPyConstructObject(void* ptr,
- const char* className,
- int setThisOwn) {
+ const char* className,
+ int setThisOwn) {
+ PyObject* obj;
+ PyObject* arg;
+
+ if (!ptr) {
+ Py_INCREF(Py_None);
+ return Py_None;
+ }
+
char buff[64]; // should always be big enough...
char swigptr[64];
sprintf(buff, "%sPtr", className);
PyObject* classobj = PyDict_GetItemString(wxPython_dict, buff);
if (! classobj) {
- Py_INCREF(Py_None);
- return Py_None;
- }
-
- PyObject* arg = Py_BuildValue("(s)", swigptr);
- PyObject* obj = PyInstance_New(classobj, arg, NULL);
+ //Py_INCREF(Py_None);
+ //return Py_None;
+ char temp[128];
+ sprintf(temp,
+ "*** Unknown class name %s, tell Robin about it please ***",
+ buff);
+ obj = PyString_FromString(temp);
+ return obj;
+ }
+
+ arg = Py_BuildValue("(s)", swigptr);
+ obj = PyInstance_New(classobj, arg, NULL);
Py_DECREF(arg);
if (setThisOwn) {
}
-void wxPyCallbackHelper::setSelf(PyObject* self, PyObject* _class, int incref) {
+void wxPyCallbackHelper::setSelf(PyObject* self, PyObject* klass, int incref) {
m_self = self;
- m_class = _class;
+ m_class = klass;
m_incRef = incref;
if (incref) {
Py_INCREF(m_self);
}
void wxPyTimer::Notify() {
- bool doSave = wxPyRestoreThread();
-
- PyObject* result;
- PyObject* args = Py_BuildValue("()");
+ if (!func || func == Py_None) {
+ wxTimer::Notify();
+ }
+ else {
+ bool doSave = wxPyRestoreThread();
+
+ PyObject* result;
+ PyObject* args = Py_BuildValue("()");
+
+ result = PyEval_CallObject(func, args);
+ Py_DECREF(args);
+ if (result) {
+ Py_DECREF(result);
+ PyErr_Clear();
+ } else {
+ PyErr_Print();
+ }
- result = PyEval_CallObject(func, args);
- Py_DECREF(args);
- if (result) {
- Py_DECREF(result);
- PyErr_Clear();
- } else {
- PyErr_Print();
+ wxPySaveThread(doSave);
}
- wxPySaveThread(doSave);
}