]> 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 a9ff1f6f9464da0740ee5ea6bd85119d1c2aab11..634a2f06fcad645c6a72ccc3488d27368d240fa5 100644 (file)
@@ -147,7 +147,7 @@ bool wxPyDataObjectSimple::GetDataHere(void *buf) {
     // C++ version.
 
     bool rval = FALSE;
-    bool doSave = wxPyRestoreThread();
+    wxPyTState* state = wxPyBeginBlockThreads();
     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);
         }
     }
-    wxPySaveThread(doSave);
+    wxPyEndBlockThreads(state);
     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;
-    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);
     }
-    wxPySaveThread(doSave);
+    wxPyEndBlockThreads(state);
     return rval;
 }
 %}
@@ -264,7 +264,7 @@ public:
 
 wxBitmap wxPyBitmapDataObject::GetBitmap() {
     wxBitmap* rval = &wxNullBitmap;
-    bool doSave = wxPyRestoreThread();
+    wxPyTState* state = wxPyBeginBlockThreads();
     if (m_myInst.findCallback("GetBitmap")) {
         PyObject* ro;
         wxBitmap* ptr;
@@ -275,17 +275,17 @@ wxBitmap wxPyBitmapDataObject::GetBitmap() {
             Py_DECREF(ro);
         }
     }
-    wxPySaveThread(doSave);
+    wxPyEndBlockThreads(state);
     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")));
     }
-    wxPySaveThread(doSave);
+    wxPyEndBlockThreads(state);
 }
 %}
 
@@ -317,8 +317,9 @@ public:
             return list;
         }
     }
-
-    //void AddFile(const wxString &filename);
+#ifdef __WXMSW__
+    void AddFile(const wxString &filename);
+#endif
 };
 
 
@@ -345,6 +346,7 @@ public:
     }
 
     size_t GetSize();
+
     //void *GetData();
     %addmethods {
         PyObject* GetData() {
@@ -361,7 +363,7 @@ public:
 //----------------------------------------------------------------------
 //----------------------------------------------------------------------
 
-class wxClipboard {
+class wxClipboard : public wxObject {
 public:
     wxClipboard();
 
@@ -581,7 +583,7 @@ public:
 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());
@@ -590,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);
-    wxPySaveThread(doSave);
+    wxPyEndBlockThreads(state);
     return rval;
 }
 
@@ -627,7 +629,9 @@ public:
 %init %{
 
     wxPyTheClipboard = wxTheClipboard;
-
+    wxPyPtrTypeMap_Add("wxDropSource", "wxPyDropSource");
+    wxPyPtrTypeMap_Add("wxTextDropTarget", "wxPyTextDropTarget");
+    wxPyPtrTypeMap_Add("wxFileDropTarget", "wxPyFileDropTarget");
 %}
 
 //----------------------------------------------------------------------