///////////////////////////////////////////////////////////////////////////////
-// Name: ole/droptgt.h
+// Name: wx/msw/ole/droptgt.h
// Purpose: declaration of the wxDropTarget class
// Author: Vadim Zeitlin
// Modified by:
// ----------------------------------------------------------------------------
class wxIDropTarget;
+struct wxIDropTargetHelper;
struct IDataObject;
// ----------------------------------------------------------------------------
// -------------------------------
// do we accept this kind of data?
- bool IsAcceptedData(IDataObject *pIDataSource) const;
+ bool MSWIsAcceptedData(IDataObject *pIDataSource) const;
// give us the data source from IDropTarget::Drop() - this is later used by
// GetData() when it's called from inside OnData()
- void SetDataSource(IDataObject *pIDataSource);
+ void MSWSetDataSource(IDataObject *pIDataSource);
+
+ // These functions take care of all things necessary to support native drag
+ // images.
+ //
+ // {Init,End}DragImageSupport() are called during Register/Revoke,
+ // UpdateDragImageOnXXX() functions are called on the corresponding drop
+ // target events.
+ void MSWInitDragImageSupport();
+ void MSWEndDragImageSupport();
+ void MSWUpdateDragImageOnData(wxCoord x, wxCoord y, wxDragResult res);
+ void MSWUpdateDragImageOnDragOver(wxCoord x, wxCoord y, wxDragResult res);
+ void MSWUpdateDragImageOnEnter(wxCoord x, wxCoord y, wxDragResult res);
+ void MSWUpdateDragImageOnLeave();
private:
// helper used by IsAcceptedData() and GetData()
- wxDataFormat GetSupportedFormat(IDataObject *pIDataSource) const;
+ wxDataFormat MSWGetSupportedFormat(IDataObject *pIDataSource) const;
- wxIDropTarget *m_pIDropTarget; // the pointer to our COM interface
- IDataObject *m_pIDataSource; // the pointer to the source data object
+ wxIDropTarget *m_pIDropTarget; // the pointer to our COM interface
+ IDataObject *m_pIDataSource; // the pointer to the source data object
+ wxIDropTargetHelper *m_dropTargetHelper; // the drop target helper
- DECLARE_NO_COPY_CLASS(wxDropTarget)
+ wxDECLARE_NO_COPY_CLASS(wxDropTarget);
};
#endif //wxUSE_DRAG_AND_DROP