1 ///////////////////////////////////////////////////////////////////////////////
3 // Purpose: declaration of the wxDropTarget class
4 // Author: David Webster
8 // Copyright: (c) 1999 David Webster
9 // Licence: wxWindows license
10 ///////////////////////////////////////////////////////////////////////////////
20 #if !wxUSE_DRAG_AND_DROP
21 #error "You should #define wxUSE_DRAG_AND_DROP to 1 to compile this file!"
24 //-------------------------------------------------------------------------
26 //-------------------------------------------------------------------------
28 class WXDLLEXPORT wxDropSource
: public wxDropSourceBase
31 /* constructor. set data later with SetData() */
32 wxDropSource(wxWindow
* pWin
);
34 /* constructor for setting one data object */
35 wxDropSource( wxDataObject
& rData
,
38 virtual ~wxDropSource();
40 /* start drag action */
41 virtual wxDragResult
DoDragDrop(bool bAllowMove
= FALSE
);
47 DRAGIMAGE
* m_pDragImage
;
48 DRAGINFO
* m_pDragInfo
;
49 DRAGTRANSFER
* m_pDragTransfer
;
52 //-------------------------------------------------------------------------
54 //-------------------------------------------------------------------------
56 class WXDLLEXPORT wxDropTarget
: public wxDropTargetBase
59 wxDropTarget(wxDataObject
*dataObject
= (wxDataObject
*)NULL
);
60 virtual ~wxDropTarget();
62 void Register(WXHWND hwnd
);
63 void Revoke(WXHWND hwnd
);
65 virtual wxDragResult
OnDragOver(wxCoord x
, wxCoord y
, wxDragResult def
);
66 virtual bool OnDrop(wxCoord x
, wxCoord y
);
67 virtual bool OnData(wxCoord x
, wxCoord y
);
68 virtual bool GetData();
72 virtual bool IsAcceptable(DRAGINFO
* pInfo
);
74 DRAGINFO
* m_pDragInfo
;
75 DRAGTRANSFER
* m_pDragTransfer
;
78 // ----------------------------------------------------------------------------
79 // A simple wxDropTarget derived class for text data: you only need to
80 // override OnDropText() to get something working
81 // ----------------------------------------------------------------------------
83 class WXDLLEXPORT wxTextDropTarget
: public wxDropTarget
87 virtual ~wxTextDropTarget();
89 virtual bool OnDropText( wxCoord x
91 ,const wxString
& rText
94 virtual bool OnData( wxCoord x
99 // ----------------------------------------------------------------------------
100 // A drop target which accepts files (dragged from File Manager or Explorer)
101 // ----------------------------------------------------------------------------
103 class WXDLLEXPORT wxFileDropTarget
: public wxDropTarget
107 virtual ~wxFileDropTarget();
109 // parameters are the number of files and the array of file names
110 virtual bool OnDropFiles( wxCoord x
112 ,const wxArrayString
& rFilenames
115 virtual bool OnData( wxCoord x