]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/helpers.cpp
ignore CodeWarrior build directory
[wxWidgets.git] / wxPython / src / helpers.cpp
index 4495879274c95ffd9e6a9a5036046aead26d5875..cc9f3054189049d337463577276ff9a5c384d6c9 100644 (file)
 #endif
 
 
-//---------------------------------------------------------------------------
-
-//wxHashTable*  wxPyWindows = NULL;
-
-
-wxPoint     wxPyDefaultPosition;        //wxDefaultPosition);
-wxSize      wxPyDefaultSize;            //wxDefaultSize);
-wxString    wxPyEmptyStr("");
-
 
 
 #ifdef __WXMSW__             // If building for win32...
@@ -118,7 +109,6 @@ void WXDLLEXPORT wxEntryCleanup();
 #ifdef WXP_WITH_THREAD
 PyThreadState*  wxPyEventThreadState = NULL;
 #endif
-static char* __nullArgv[1] = { 0 };
 
 
 // This is where we pick up the first part of the wxEntry functionality...
@@ -257,8 +247,8 @@ PyObject* __wxSetDictionary(PyObject* /* self */, PyObject* args)
 //---------------------------------------------------------------------------
 
 PyObject* wxPyConstructObject(void* ptr,
-                                 const char* className,
-                                 int setThisOwn) {
+                              const char* className,
+                              int setThisOwn) {
     PyObject* obj;
     PyObject* arg;
 
@@ -301,8 +291,6 @@ PyObject* wxPyConstructObject(void* ptr,
 
 //---------------------------------------------------------------------------
 
-static unsigned int _wxPyNestCount = 0;
-
 static PyThreadState* myPyThreadState_Get() {
     PyThreadState* current;
     current = PyThreadState_Swap(NULL);
@@ -311,7 +299,7 @@ static PyThreadState* myPyThreadState_Get() {
 }
 
 
-HELPEREXPORT bool wxPyRestoreThread() {
+bool wxPyRestoreThread() {
     // NOTE: The Python API docs state that if a thread already has the
     // interpreter lock and calls PyEval_RestoreThread again a deadlock
     // occurs, so I put in this code as a guard condition since there are
@@ -320,7 +308,6 @@ HELPEREXPORT bool wxPyRestoreThread() {
     // already have the lock.  (I hope!)
     //
 #ifdef WXP_WITH_THREAD
-    _wxPyNestCount += 1;
     if (wxPyEventThreadState != myPyThreadState_Get()) {
         PyEval_RestoreThread(wxPyEventThreadState);
         return TRUE;
@@ -331,12 +318,11 @@ HELPEREXPORT bool wxPyRestoreThread() {
 }
 
 
-HELPEREXPORT void wxPySaveThread(bool doSave) {
+void wxPySaveThread(bool doSave) {
 #ifdef WXP_WITH_THREAD
     if (doSave) {
         wxPyEventThreadState = PyEval_SaveThread();
     }
-    _wxPyNestCount -= 1;
 #endif
 }
 
@@ -398,23 +384,6 @@ void wxPyCallback::EventThunker(wxEvent& event) {
 
 //----------------------------------------------------------------------
 
-wxPyCallbackHelper::wxPyCallbackHelper() {
-    m_class = NULL;
-    m_self = NULL;
-    m_lastFound = NULL;
-    m_incRef = FALSE;
-}
-
-
-wxPyCallbackHelper::~wxPyCallbackHelper() {
-    bool doSave = wxPyRestoreThread();
-    if (m_incRef) {
-        Py_XDECREF(m_self);
-        Py_XDECREF(m_class);
-    }
-    wxPySaveThread(doSave);
-}
-
 wxPyCallbackHelper::wxPyCallbackHelper(const wxPyCallbackHelper& other) {
       m_lastFound = NULL;
       m_self = other.m_self;
@@ -477,7 +446,6 @@ int wxPyCallbackHelper::callCallback(PyObject* argTuple) const {
 // Invoke the Python callable object, returning the raw PyObject return
 // value.  Caller should DECREF the return value and also call PyEval_SaveThread.
 PyObject* wxPyCallbackHelper::callCallbackObj(PyObject* argTuple) const {
-    wxPyCallbackHelper* self = (wxPyCallbackHelper*)this; // cast away const
     PyObject* result;
 
     // Save a copy of the pointer in case the callback generates another
@@ -495,6 +463,31 @@ PyObject* wxPyCallbackHelper::callCallbackObj(PyObject* argTuple) const {
 }
 
 
+void wxPyCBH_setSelf(wxPyCallbackHelper& cbh, PyObject* self, PyObject* klass, int incref) {
+    cbh.setSelf(self, klass, incref);
+}
+
+bool wxPyCBH_findCallback(const wxPyCallbackHelper& cbh, const char* name) {
+    return cbh.findCallback(name);
+}
+
+int  wxPyCBH_callCallback(const wxPyCallbackHelper& cbh, PyObject* argTuple) {
+    return cbh.callCallback(argTuple);
+}
+
+PyObject* wxPyCBH_callCallbackObj(const wxPyCallbackHelper& cbh, PyObject* argTuple) {
+    return cbh.callCallbackObj(argTuple);
+}
+
+
+void wxPyCBH_delete(wxPyCallbackHelper* cbh) {
+    bool doSave = wxPyRestoreThread();
+    if (cbh->m_incRef) {
+        Py_XDECREF(cbh->m_self);
+        Py_XDECREF(cbh->m_class);
+    }
+    wxPySaveThread(doSave);
+}
 
 //---------------------------------------------------------------------------
 //---------------------------------------------------------------------------