]> git.saurik.com Git - wxWidgets.git/blob - include/wx/os2/dnd.h
*** empty log message ***
[wxWidgets.git] / include / wx / os2 / dnd.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: dnd.h
3 // Purpose: declaration of the wxDropTarget class
4 // Author: David Webster
5 // Modified by:
6 // Created: 10/21/99
7 // RCS-ID: $Id$
8 // Copyright: (c) 1999 David Webster
9 // Licence: wxWindows license
10 ///////////////////////////////////////////////////////////////////////////////
11
12
13 #ifndef __OS2DNDH__
14 #define __OS2DNDH__
15
16 #ifdef __GNUG__
17 #pragma interface
18 #endif
19
20 #if !wxUSE_DRAG_AND_DROP
21 #error "You should #define wxUSE_DRAG_AND_DROP to 1 to compile this file!"
22 #endif //WX_DRAG_DROP
23
24 //-------------------------------------------------------------------------
25 // wxDropSource
26 //-------------------------------------------------------------------------
27
28 class WXDLLEXPORT wxDropSource: public wxDropSourceBase
29 {
30 public:
31 /* constructor. set data later with SetData() */
32 wxDropSource(wxWindow* pWin);
33
34 /* constructor for setting one data object */
35 wxDropSource( wxDataObject& rData,
36 wxWindow* pWin
37 );
38 virtual ~wxDropSource();
39
40 /* start drag action */
41 virtual wxDragResult DoDragDrop(bool bAllowMove = FALSE);
42
43 protected:
44 void Init(void);
45 bool m_bLazyDrag;
46
47 DRAGIMAGE* m_pDragImage;
48 DRAGINFO* m_pDragInfo;
49 DRAGTRANSFER* m_pDragTransfer;
50 };
51
52 //-------------------------------------------------------------------------
53 // wxDropTarget
54 //-------------------------------------------------------------------------
55
56 class WXDLLEXPORT wxDropTarget: public wxDropTargetBase
57 {
58 public:
59 wxDropTarget(wxDataObject *dataObject = (wxDataObject*)NULL);
60 virtual ~wxDropTarget();
61
62 void Register(WXHWND hwnd);
63 void Revoke(WXHWND hwnd);
64
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 wxDragResult OnData(wxCoord x, wxCoord y, wxDragResult vResult);
69 virtual bool GetData();
70
71 // implementation
72 protected:
73 virtual bool IsAcceptable(DRAGINFO* pInfo);
74
75 DRAGINFO* m_pDragInfo;
76 DRAGTRANSFER* m_pDragTransfer;
77 };
78
79 // ----------------------------------------------------------------------------
80 // A simple wxDropTarget derived class for text data: you only need to
81 // override OnDropText() to get something working
82 // ----------------------------------------------------------------------------
83
84 class WXDLLEXPORT wxTextDropTarget : public wxDropTarget
85 {
86 public:
87 wxTextDropTarget();
88 virtual ~wxTextDropTarget();
89
90 virtual bool OnDropText( wxCoord x
91 ,wxCoord y
92 ,const wxString& rText
93 ) = 0;
94
95 virtual bool OnData( wxCoord x
96 ,wxCoord y
97 );
98 virtual wxDragResult OnData(wxCoord x, wxCoord y, wxDragResult vResult);
99 };
100
101 // ----------------------------------------------------------------------------
102 // A drop target which accepts files (dragged from File Manager or Explorer)
103 // ----------------------------------------------------------------------------
104
105 class WXDLLEXPORT wxFileDropTarget : public wxDropTarget
106 {
107 public:
108 wxFileDropTarget();
109 virtual ~wxFileDropTarget();
110
111 // parameters are the number of files and the array of file names
112 virtual bool OnDropFiles( wxCoord x
113 ,wxCoord y
114 ,const wxArrayString& rFilenames
115 ) = 0;
116
117 virtual bool OnData( wxCoord x
118 ,wxCoord y
119 );
120 virtual wxDragResult OnData(wxCoord x, wxCoord y, wxDragResult vResult);
121 };
122
123 #endif //__OS2DNDH__
124