X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c32a8bd4dbc7ce0acb5e22e5558f66a566b23cc8..3096bd2fa7b88105bc54c08e3c878585de1a9b91:/src/common/dobjcmn.cpp diff --git a/src/common/dobjcmn.cpp b/src/common/dobjcmn.cpp index 6a40f0b1d9..53a4041c7b 100644 --- a/src/common/dobjcmn.cpp +++ b/src/common/dobjcmn.cpp @@ -229,6 +229,12 @@ void wxFileDataObjectBase::SetFilenames(const wxChar* filenames) // wxCustomDataObject // ---------------------------------------------------------------------------- +wxCustomDataObject::wxCustomDataObject(const wxDataFormat& format) + : wxDataObjectSimple(format) +{ +} + + wxCustomDataObject::~wxCustomDataObject() { Free(); @@ -283,3 +289,49 @@ bool wxCustomDataObject::SetData(size_t size, const void *buf) return TRUE; } +// ============================================================================ +// some common dnd related code +// ============================================================================ + +#if wxUSE_DRAG_AND_DROP + +#include "wx/dnd.h" + +// ---------------------------------------------------------------------------- +// wxTextDropTarget +// ---------------------------------------------------------------------------- + +wxTextDropTarget::wxTextDropTarget() + : wxDropTarget(new wxTextDataObject) +{ +} + +wxDragResult wxTextDropTarget::OnData(wxCoord x, wxCoord y, wxDragResult def) +{ + if ( !GetData() ) + return wxDragNone; + + wxTextDataObject *dobj = (wxTextDataObject *)m_dataObject; + return OnDropText(x, y, dobj->GetText()) ? def : wxDragNone; +} + +// ---------------------------------------------------------------------------- +// wxFileDropTarget +// ---------------------------------------------------------------------------- + +wxFileDropTarget::wxFileDropTarget() + : wxDropTarget(new wxFileDataObject) +{ +} + +wxDragResult wxFileDropTarget::OnData(wxCoord x, wxCoord y, wxDragResult def) +{ + if ( !GetData() ) + return wxDragNone; + + wxFileDataObject *dobj = (wxFileDataObject *)m_dataObject; + return OnDropFiles(x, y, dobj->GetFilenames()) ? def : wxDragNone; +} + +#endif +