]> git.saurik.com Git - wxWidgets.git/blame_incremental - include/wx/os2/dnd.h
Changed wxGetSingleChoiceData() to take void* client data pointers instead
[wxWidgets.git] / include / wx / os2 / dnd.h
... / ...
CommitLineData
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
28class WXDLLEXPORT wxDropSource: public wxDropSourceBase
29{
30public:
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
43protected:
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
56class WXDLLEXPORT wxDropTarget: public wxDropTargetBase
57{
58public:
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 bool GetData();
69
70 // implementation
71protected:
72 virtual bool IsAcceptable(DRAGINFO* pInfo);
73
74 DRAGINFO* m_pDragInfo;
75 DRAGTRANSFER* m_pDragTransfer;
76};
77
78// ----------------------------------------------------------------------------
79// A simple wxDropTarget derived class for text data: you only need to
80// override OnDropText() to get something working
81// ----------------------------------------------------------------------------
82
83class WXDLLEXPORT wxTextDropTarget : public wxDropTarget
84{
85public:
86 wxTextDropTarget();
87 virtual ~wxTextDropTarget();
88
89 virtual bool OnDropText( wxCoord x
90 ,wxCoord y
91 ,const wxString& rText
92 ) = 0;
93
94 virtual bool OnData( wxCoord x
95 ,wxCoord y
96 );
97};
98
99// ----------------------------------------------------------------------------
100// A drop target which accepts files (dragged from File Manager or Explorer)
101// ----------------------------------------------------------------------------
102
103class WXDLLEXPORT wxFileDropTarget : public wxDropTarget
104{
105public:
106 wxFileDropTarget();
107 virtual ~wxFileDropTarget();
108
109 // parameters are the number of files and the array of file names
110 virtual bool OnDropFiles( wxCoord x
111 ,wxCoord y
112 ,const wxArrayString& rFilenames
113 ) = 0;
114
115 virtual bool OnData( wxCoord x
116 ,wxCoord y
117 );
118};
119
120#endif //__OS2DNDH__
121