]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/clip_dnd.i
Change how the tool scripts are installed
[wxWidgets.git] / wxPython / src / clip_dnd.i
index ea59320ca1930bec5662b885a51b32cf3576af23..d1be82ee3e954c85288c7b63181395247e6c6090 100644 (file)
@@ -13,8 +13,6 @@
 
 %module clip_dnd
 
-#ifndef __WXMAC__
-
 %{
 #include "helpers.h"
 #include <wx/dataobj.h>
 
 %pragma(python) code = "import wx"
 
+//---------------------------------------------------------------------------
+%{
+    // Put some wx default wxChar* values into wxStrings.
+    static const wxString wxPyEmptyString(wxT(""));
+%}
 //----------------------------------------------------------------------
 
 
 enum wxDataFormatId
 {
-    wxDF_INVALID =          0,
-    wxDF_TEXT =             1,  /* CF_TEXT */
-    wxDF_BITMAP =           2,  /* CF_BITMAP */
-    wxDF_METAFILE =         3,  /* CF_METAFILEPICT */
-    wxDF_SYLK =             4,
-    wxDF_DIF =              5,
-    wxDF_TIFF =             6,
-    wxDF_OEMTEXT =          7,  /* CF_OEMTEXT */
-    wxDF_DIB =              8,  /* CF_DIB */
-    wxDF_PALETTE =          9,
-    wxDF_PENDATA =          10,
-    wxDF_RIFF =             11,
-    wxDF_WAVE =             12,
-    wxDF_UNICODETEXT =      13,
-    wxDF_ENHMETAFILE =      14,
-    wxDF_FILENAME =         15, /* CF_HDROP */
-    wxDF_LOCALE =           16,
-    wxDF_PRIVATE =          20,
-    wxDF_MAX
+    wxDF_INVALID,
+    wxDF_TEXT,
+    wxDF_BITMAP,
+    wxDF_METAFILE,
+    wxDF_SYLK,
+    wxDF_DIF,
+    wxDF_TIFF,
+    wxDF_OEMTEXT,
+    wxDF_DIB,
+    wxDF_PALETTE,
+    wxDF_PENDATA,
+    wxDF_RIFF,
+    wxDF_WAVE,
+    wxDF_UNICODETEXT,
+    wxDF_ENHMETAFILE,
+    wxDF_FILENAME,
+    wxDF_LOCALE,
+    wxDF_PRIVATE,
+    wxDF_HTML,
+    wxDF_MAX,
 };
 
 //----------------------------------------------------------------------
@@ -72,7 +76,7 @@ public:
     wxDataFormatId GetType() const;
 
     wxString GetId() const;
-    void SetId(const wxChar *format);
+    void SetId(const wxString& format);
 };
 
 %new wxDataFormat* wxCustomDataFormat(const wxString &id);
@@ -205,7 +209,7 @@ public:
 
 class wxTextDataObject : public wxDataObjectSimple {
 public:
-    wxTextDataObject(const wxString& text = wxEmptyString);
+    wxTextDataObject(const wxString& text = wxPyEmptyString);
 
     size_t GetTextLength();
     wxString GetText();
@@ -217,7 +221,7 @@ public:
 %{  // Create a new class for wxPython to use
 class wxPyTextDataObject : public wxTextDataObject {
 public:
-    wxPyTextDataObject(const wxString& text = wxEmptyString)
+    wxPyTextDataObject(const wxString& text = wxPyEmptyString)
         : wxTextDataObject(text) {}
 
     DEC_PYCALLBACK_SIZET_(GetTextLength);
@@ -236,7 +240,7 @@ IMP_PYCALLBACK__STRING(wxPyTextDataObject, wxTextDataObject, SetText);
 // Now define it for SWIG
 class wxPyTextDataObject : public wxTextDataObject {
 public:
-    wxPyTextDataObject(const wxString& text = wxEmptyString);
+    wxPyTextDataObject(const wxString& text = wxPyEmptyString);
     void _setCallbackInfo(PyObject* self, PyObject* _class);
     %pragma(python) addtomethod = "__init__:self._setCallbackInfo(self, wxPyTextDataObject)"
 };
@@ -284,8 +288,9 @@ wxBitmap wxPyBitmapDataObject::GetBitmap() {
 void wxPyBitmapDataObject::SetBitmap(const wxBitmap& bitmap) {
     wxPyBeginBlockThreads();
     if (m_myInst.findCallback("SetBitmap")) {
-        m_myInst.callCallback(Py_BuildValue("(O)",
-                              wxPyConstructObject((void*)&bitmap, "wxBitmap")));
+        PyObject* bo = wxPyConstructObject((void*)&bitmap, "wxBitmap");
+        m_myInst.callCallback(Py_BuildValue("(O)", bo));
+        Py_DECREF(bo);
     }
     wxPyEndBlockThreads();
 }
@@ -421,6 +426,15 @@ public:
 //----------------------------------------------------------------------
 //----------------------------------------------------------------------
 
+// flags for wxDropSource::DoDragDrop()
+//
+enum
+{
+    wxDrag_CopyOnly    = 0, // allow only copying
+    wxDrag_AllowMove   = 1, // allow moving (copying is always allowed)
+    wxDrag_DefaultMove = 3  // the default operation is move, not copy
+};
+
 enum wxDragResult
 {
     wxDragError,    // error prevented the d&d operation from completing
@@ -478,7 +492,7 @@ public:
     void SetData(wxDataObject& data);
     wxDataObject *GetDataObject();
     void SetCursor(wxDragResult res, const wxCursor& cursor);
-    wxDragResult DoDragDrop(int bAllowMove = FALSE);
+    wxDragResult DoDragDrop(int flags = wxDrag_CopyOnly);
 
     bool base_GiveFeedback(wxDragResult effect);
 };
@@ -612,10 +626,11 @@ bool wxPyFileDropTarget::OnDropFiles(wxCoord x, wxCoord y,
                                      const wxArrayString& filenames) {
     bool rval = FALSE;
     wxPyBeginBlockThreads();
-    PyObject* list = wxArrayString2PyList_helper(filenames);
-    if (m_myInst.findCallback("OnDropFiles"))
+    if (m_myInst.findCallback("OnDropFiles")) {
+        PyObject* list = wxArrayString2PyList_helper(filenames);
         rval = m_myInst.callCallback(Py_BuildValue("(iiO)",x,y,list));
-    Py_DECREF(list);
+        Py_DECREF(list);
+    }
     wxPyEndBlockThreads();
     return rval;
 }
@@ -659,5 +674,5 @@ public:
 %}
 
 //----------------------------------------------------------------------
-#endif
+