]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/clip_dnd.i
Don't create a bitmap with dimensions <= 0...
[wxWidgets.git] / wxPython / src / clip_dnd.i
index 8feb9e8786e22eb5ab7fe16100d1817dfa8c1944..634a2f06fcad645c6a72ccc3488d27368d240fa5 100644 (file)
@@ -147,7 +147,7 @@ bool wxPyDataObjectSimple::GetDataHere(void *buf) {
     // C++ version.
 
     bool rval = FALSE;
     // C++ version.
 
     bool rval = FALSE;
-    bool doSave = wxPyRestoreThread();
+    wxPyTState* state = wxPyBeginBlockThreads();
     if (m_myInst.findCallback("GetDataHere")) {
         PyObject* ro;
         ro = m_myInst.callCallbackObj(Py_BuildValue("()"));
     if (m_myInst.findCallback("GetDataHere")) {
         PyObject* ro;
         ro = m_myInst.callCallbackObj(Py_BuildValue("()"));
@@ -158,7 +158,7 @@ bool wxPyDataObjectSimple::GetDataHere(void *buf) {
             Py_DECREF(ro);
         }
     }
             Py_DECREF(ro);
         }
     }
-    wxPySaveThread(doSave);
+    wxPyEndBlockThreads(state);
     return rval;
 }
 
     return rval;
 }
 
@@ -166,13 +166,13 @@ bool wxPyDataObjectSimple::SetData(size_t len, const void *buf) {
     // For this one we simply need to make a string from buf and len
     // and send it to the Python method.
     bool rval = FALSE;
     // For this one we simply need to make a string from buf and len
     // and send it to the Python method.
     bool rval = FALSE;
-    bool doSave = wxPyRestoreThread();
+    wxPyTState* state = wxPyBeginBlockThreads();
     if (m_myInst.findCallback("SetData")) {
         PyObject* data = PyString_FromStringAndSize((char*)buf, len);
         rval = m_myInst.callCallback(Py_BuildValue("(O)", data));
         Py_DECREF(data);
     }
     if (m_myInst.findCallback("SetData")) {
         PyObject* data = PyString_FromStringAndSize((char*)buf, len);
         rval = m_myInst.callCallback(Py_BuildValue("(O)", data));
         Py_DECREF(data);
     }
-    wxPySaveThread(doSave);
+    wxPyEndBlockThreads(state);
     return rval;
 }
 %}
     return rval;
 }
 %}
@@ -264,7 +264,7 @@ public:
 
 wxBitmap wxPyBitmapDataObject::GetBitmap() {
     wxBitmap* rval = &wxNullBitmap;
 
 wxBitmap wxPyBitmapDataObject::GetBitmap() {
     wxBitmap* rval = &wxNullBitmap;
-    bool doSave = wxPyRestoreThread();
+    wxPyTState* state = wxPyBeginBlockThreads();
     if (m_myInst.findCallback("GetBitmap")) {
         PyObject* ro;
         wxBitmap* ptr;
     if (m_myInst.findCallback("GetBitmap")) {
         PyObject* ro;
         wxBitmap* ptr;
@@ -275,17 +275,17 @@ wxBitmap wxPyBitmapDataObject::GetBitmap() {
             Py_DECREF(ro);
         }
     }
             Py_DECREF(ro);
         }
     }
-    wxPySaveThread(doSave);
+    wxPyEndBlockThreads(state);
     return *rval;
 }
 
 void wxPyBitmapDataObject::SetBitmap(const wxBitmap& bitmap) {
     return *rval;
 }
 
 void wxPyBitmapDataObject::SetBitmap(const wxBitmap& bitmap) {
-    bool doSave = wxPyRestoreThread();
+    wxPyTState* state = wxPyBeginBlockThreads();
     if (m_myInst.findCallback("SetBitmap")) {
         m_myInst.callCallback(Py_BuildValue("(O)",
                               wxPyConstructObject((void*)&bitmap, "wxBitmap")));
     }
     if (m_myInst.findCallback("SetBitmap")) {
         m_myInst.callCallback(Py_BuildValue("(O)",
                               wxPyConstructObject((void*)&bitmap, "wxBitmap")));
     }
-    wxPySaveThread(doSave);
+    wxPyEndBlockThreads(state);
 }
 %}
 
 }
 %}
 
@@ -346,6 +346,7 @@ public:
     }
 
     size_t GetSize();
     }
 
     size_t GetSize();
+
     //void *GetData();
     %addmethods {
         PyObject* GetData() {
     //void *GetData();
     %addmethods {
         PyObject* GetData() {
@@ -362,7 +363,7 @@ public:
 //----------------------------------------------------------------------
 //----------------------------------------------------------------------
 
 //----------------------------------------------------------------------
 //----------------------------------------------------------------------
 
-class wxClipboard {
+class wxClipboard : public wxObject {
 public:
     wxClipboard();
 
 public:
     wxClipboard();
 
@@ -582,7 +583,7 @@ public:
 bool wxPyFileDropTarget::OnDropFiles(wxCoord x, wxCoord y,
                                      const wxArrayString& filenames) {
     bool rval = FALSE;
 bool wxPyFileDropTarget::OnDropFiles(wxCoord x, wxCoord y,
                                      const wxArrayString& filenames) {
     bool rval = FALSE;
-    bool doSave = wxPyRestoreThread();
+    wxPyTState* state = wxPyBeginBlockThreads();
     PyObject* list = PyList_New(0);
     for (size_t i=0; i<filenames.GetCount(); i++) {
         PyObject* str = PyString_FromString(filenames[i].c_str());
     PyObject* list = PyList_New(0);
     for (size_t i=0; i<filenames.GetCount(); i++) {
         PyObject* str = PyString_FromString(filenames[i].c_str());
@@ -591,7 +592,7 @@ bool wxPyFileDropTarget::OnDropFiles(wxCoord x, wxCoord y,
     if (m_myInst.findCallback("OnDropFiles"))
         rval = m_myInst.callCallback(Py_BuildValue("(iiO)",x,y,list));
     Py_DECREF(list);
     if (m_myInst.findCallback("OnDropFiles"))
         rval = m_myInst.callCallback(Py_BuildValue("(iiO)",x,y,list));
     Py_DECREF(list);
-    wxPySaveThread(doSave);
+    wxPyEndBlockThreads(state);
     return rval;
 }
 
     return rval;
 }
 
@@ -628,7 +629,9 @@ public:
 %init %{
 
     wxPyTheClipboard = wxTheClipboard;
 %init %{
 
     wxPyTheClipboard = wxTheClipboard;
-
+    wxPyPtrTypeMap_Add("wxDropSource", "wxPyDropSource");
+    wxPyPtrTypeMap_Add("wxTextDropTarget", "wxPyTextDropTarget");
+    wxPyPtrTypeMap_Add("wxFileDropTarget", "wxPyFileDropTarget");
 %}
 
 //----------------------------------------------------------------------
 %}
 
 //----------------------------------------------------------------------