1 ///////////////////////////////////////////////////////////////////////////////
3 // Purpose: Declaration of the wxDropTarget, wxDropSource class etc.
6 // Copyright: (c) 1998 AUTHOR
7 // Licence: wxWindows licence
8 ///////////////////////////////////////////////////////////////////////////////
14 #pragma interface "dnd.h"
17 #if wxUSE_DRAG_AND_DROP
20 #include "wx/object.h"
21 #include "wx/string.h"
22 #include "wx/string.h"
23 #include "wx/dataobj.h"
24 #include "wx/cursor.h"
26 //-------------------------------------------------------------------------
28 //-------------------------------------------------------------------------
30 class WXDLLEXPORT wxWindow
;
32 class WXDLLEXPORT wxDropTarget
;
33 class WXDLLEXPORT wxTextDropTarget
;
34 class WXDLLEXPORT wxFileDropTarget
;
36 class WXDLLEXPORT wxDropSource
;
38 // ----------------------------------------------------------------------------
40 // ----------------------------------------------------------------------------
42 // this macro may be used instead for wxDropSource ctor arguments: it will use
43 // the icon 'name' from an XPM file under GTK, but will expand to something
44 // else under MSW. If you don't use it, you will have to use #ifdef in the
46 #define wxDROP_ICON(name) wxICON(name)
48 //-------------------------------------------------------------------------
50 //-------------------------------------------------------------------------
52 class WXDLLEXPORT wxDropTarget
: public wxDropTargetBase
56 wxDropTarget(wxDataObject
*dataObject
= (wxDataObject
*) NULL
);
58 virtual wxDragResult
OnDragOver(wxCoord x
, wxCoord y
, wxDragResult def
);
59 virtual bool OnDrop(wxCoord x
, wxCoord y
);
60 virtual wxDragResult
OnData(wxCoord x
, wxCoord y
, wxDragResult def
);
61 virtual bool GetData();
63 bool CurrentDragHasSupportedFormat() ;
64 void SetCurrentDrag( void* drag
) { m_currentDrag
= drag
; }
65 void* GetCurrentDrag() { return m_currentDrag
; }
70 //-------------------------------------------------------------------------
72 //-------------------------------------------------------------------------
74 class WXDLLEXPORT wxDropSource
: public wxDropSourceBase
77 /* constructor. set data later with SetData() */
78 wxDropSource( wxWindow
*win
= (wxWindow
*)NULL
,
79 const wxIcon
©
= wxNullIcon
,
80 const wxIcon
&move
= wxNullIcon
,
81 const wxIcon
&none
= wxNullIcon
);
83 /* constructor for setting one data object */
84 wxDropSource( wxDataObject
& data
,
86 const wxIcon
©
= wxNullIcon
,
87 const wxIcon
&move
= wxNullIcon
,
88 const wxIcon
&none
= wxNullIcon
);
93 /* start drag action */
94 virtual wxDragResult
DoDragDrop( bool bAllowMove
= FALSE
);
96 wxWindow
* GetWindow() { return m_window
; }
97 void SetCurrentDrag( void* drag
) { m_currentDrag
= drag
; }
98 void* GetCurrentDrag() { return m_currentDrag
; }
101 void* m_currentDrag
;