%module clip_dnd
-#ifndef __WXMAC__
-
%{
#include "helpers.h"
#include <wx/dataobj.h>
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,
};
//----------------------------------------------------------------------
wxDataFormat GetPreferredFormat(Direction dir = wxDataObject::Get);
size_t GetFormatCount(Direction dir = wxDataObject::Get);
+
+ // TODO: Fix these two to be usable from wxPython.
void GetAllFormats(wxDataFormat *formats,
Direction dir = wxDataObject::Get);
- size_t GetDataSize(const wxDataFormat& format);
bool GetDataHere(const wxDataFormat& format, void *buf);
+
+ size_t GetDataSize(const wxDataFormat& format);
bool SetData(const wxDataFormat& format,
size_t len, const void * buf);
bool IsSupportedFormat(const wxDataFormat& format);
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, wxT("wxBitmap"));
+ m_myInst.callCallback(Py_BuildValue("(O)", bo));
+ Py_DECREF(bo);
}
wxPyEndBlockThreads();
}
//----------------------------------------------------------------------
//----------------------------------------------------------------------
+// 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
%{
class wxPyDropSource : public wxDropSource {
public:
-#ifdef __WXMSW__
- wxPyDropSource(wxWindow *win = NULL,
- const wxCursor &cursorCopy = wxNullCursor,
- const wxCursor &cursorMove = wxNullCursor,
- const wxCursor &cursorStop = wxNullCursor)
- : wxDropSource(win, cursorCopy, cursorMove, cursorStop) {}
+#ifndef __WXGTK__
+ wxPyDropSource(wxWindow *win = NULL,
+ const wxCursor © = wxNullCursor,
+ const wxCursor &move = wxNullCursor,
+ const wxCursor &none = wxNullCursor)
+ : wxDropSource(win, copy, move, none) {}
#else
wxPyDropSource(wxWindow *win = NULL,
- const wxIcon &go = wxNullIcon)
- : wxDropSource(win, go) {}
+ const wxIcon& copy = wxNullIcon,
+ const wxIcon& move = wxNullIcon,
+ const wxIcon& none = wxNullIcon)
+ : wxDropSource(win, copy, move, none) {}
#endif
~wxPyDropSource() { }
%name(wxDropSource) class wxPyDropSource {
public:
-#ifdef __WXMSW__
- wxPyDropSource(wxWindow *win = NULL,
- const wxCursor &cursorCopy = wxNullCursor,
- const wxCursor &cursorMove = wxNullCursor,
- const wxCursor &cursorStop = wxNullCursor);
+#ifndef __WXGTK__
+ wxPyDropSource(wxWindow *win = NULL,
+ const wxCursor © = wxNullCursor,
+ const wxCursor &move = wxNullCursor,
+ const wxCursor &none = wxNullCursor);
#else
wxPyDropSource(wxWindow *win = NULL,
- const wxIcon &go = wxNullIcon);
+ const wxIcon& copy = wxNullIcon,
+ const wxIcon& move = wxNullIcon,
+ const wxIcon& none = wxNullIcon);
#endif
void _setCallbackInfo(PyObject* self, PyObject* _class, int incref);
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);
};
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;
}
%}
//----------------------------------------------------------------------
-#endif
+