X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/389c55270a6ae54788329dde644c12746a326f68..1475671a6655702355270d44757711bf63af9ed7:/utils/wxPython/src/helpers.cpp diff --git a/utils/wxPython/src/helpers.cpp b/utils/wxPython/src/helpers.cpp index 547dde92b3..df05338a93 100644 --- a/utils/wxPython/src/helpers.cpp +++ b/utils/wxPython/src/helpers.cpp @@ -141,7 +141,11 @@ void __wxPreStart() argv[argc] = NULL; gtk_set_locale(); +#if wxUSE_WCHAR_T if (!wxOKlibc()) wxConvCurrent = &wxConvLocal; +#else + if (!wxOKlibc()) wxConvCurrent = (wxMBConv*) NULL; +#endif gtk_init( &argc, &argv ); wxSetDetectableAutoRepeat( TRUE ); delete [] argv; @@ -323,11 +327,18 @@ HELPEREXPORT void wxPySaveThread(bool doSave) { //--------------------------------------------------------------------------- +IMPLEMENT_ABSTRACT_CLASS(wxPyCallback, wxObject); + wxPyCallback::wxPyCallback(PyObject* func) { m_func = func; Py_INCREF(m_func); } +wxPyCallback::wxPyCallback(const wxPyCallback& other) { + m_func = other.m_func; + Py_INCREF(m_func); +} + wxPyCallback::~wxPyCallback() { bool doSave = wxPyRestoreThread(); Py_DECREF(m_func); @@ -377,9 +388,18 @@ wxPyCallbackHelper::~wxPyCallbackHelper() { wxPySaveThread(doSave); } -void wxPyCallbackHelper::setSelf(PyObject* self) { +wxPyCallbackHelper::wxPyCallbackHelper(const wxPyCallbackHelper& other) { + m_lastFound = NULL; + m_self = other.m_self; + if (m_self) + Py_INCREF(m_self); +} + + +void wxPyCallbackHelper::setSelf(PyObject* self, int incref) { m_self = self; - Py_INCREF(m_self); + if (incref) + Py_INCREF(m_self); } @@ -453,47 +473,8 @@ void wxPyTimer::Notify() { } -//---------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxPyEvent, wxCommandEvent) - -wxPyEvent::wxPyEvent(wxEventType commandType, PyObject* userData) - : wxCommandEvent(commandType), m_userData(Py_None) -{ - m_userData = userData; - if (m_userData != Py_None) { - Py_INCREF(m_userData); - } -} - -wxPyEvent::~wxPyEvent() { - bool doSave = wxPyRestoreThread(); - if (m_userData != Py_None) { - Py_DECREF(m_userData); - m_userData = Py_None; - } - wxPySaveThread(doSave); -} - - -void wxPyEvent::SetUserData(PyObject* userData) { - if (m_userData != Py_None) { - Py_DECREF(m_userData); - m_userData = Py_None; - } - m_userData = userData; - if (m_userData != Py_None) { - Py_INCREF(m_userData); - } -} - - -PyObject* wxPyEvent::GetUserData() { - return m_userData; -} - -//---------------------------------------------------------------------- +//--------------------------------------------------------------------------- //--------------------------------------------------------------------------- // Convert a wxList to a Python List @@ -520,7 +501,7 @@ PyObject* wxPy_ConvertList(wxListBase* list, char* className) { // included in every file... -HELPEREXPORT byte* byte_LIST_helper(PyObject* source) { +byte* byte_LIST_helper(PyObject* source) { if (!PyList_Check(source)) { PyErr_SetString(PyExc_TypeError, "Expected a list object."); return NULL; @@ -543,7 +524,7 @@ HELPEREXPORT byte* byte_LIST_helper(PyObject* source) { } -HELPEREXPORT int* int_LIST_helper(PyObject* source) { +int* int_LIST_helper(PyObject* source) { if (!PyList_Check(source)) { PyErr_SetString(PyExc_TypeError, "Expected a list object."); return NULL; @@ -566,7 +547,7 @@ HELPEREXPORT int* int_LIST_helper(PyObject* source) { } -HELPEREXPORT long* long_LIST_helper(PyObject* source) { +long* long_LIST_helper(PyObject* source) { if (!PyList_Check(source)) { PyErr_SetString(PyExc_TypeError, "Expected a list object."); return NULL; @@ -589,7 +570,7 @@ HELPEREXPORT long* long_LIST_helper(PyObject* source) { } -HELPEREXPORT char** string_LIST_helper(PyObject* source) { +char** string_LIST_helper(PyObject* source) { if (!PyList_Check(source)) { PyErr_SetString(PyExc_TypeError, "Expected a list object."); return NULL; @@ -613,7 +594,7 @@ HELPEREXPORT char** string_LIST_helper(PyObject* source) { -HELPEREXPORT wxPoint* wxPoint_LIST_helper(PyObject* source) { +wxPoint* wxPoint_LIST_helper(PyObject* source) { if (!PyList_Check(source)) { PyErr_SetString(PyExc_TypeError, "Expected a list object."); return NULL; @@ -650,7 +631,7 @@ HELPEREXPORT wxPoint* wxPoint_LIST_helper(PyObject* source) { } -HELPEREXPORT wxBitmap** wxBitmap_LIST_helper(PyObject* source) { +wxBitmap** wxBitmap_LIST_helper(PyObject* source) { if (!PyList_Check(source)) { PyErr_SetString(PyExc_TypeError, "Expected a list object."); return NULL; @@ -663,10 +644,9 @@ HELPEREXPORT wxBitmap** wxBitmap_LIST_helper(PyObject* source) { } for (int x=0; x