1
///////////////////////////////////////////////////////////////////////////////
3
// Purpose: declaration of the wxDropSource class
4
// Author: Vadim Zeitlin
7
// RCS-ID: $Id: dropsrc.h,v 1.21 2004/08/16 12:45:40 ABX Exp $
8
// Copyright: (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
9
// Licence: wxWindows licence
10
///////////////////////////////////////////////////////////////////////////////
12
#ifndef _WX_OLEDROPSRC_H
13
#define _WX_OLEDROPSRC_H
15
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
19
#if wxUSE_DRAG_AND_DROP
21
// ----------------------------------------------------------------------------
22
// forward declarations
23
// ----------------------------------------------------------------------------
26
class WXDLLEXPORT wxDataObject;
27
class WXDLLEXPORT wxWindow;
29
// ----------------------------------------------------------------------------
31
// ----------------------------------------------------------------------------
33
// this macro may be used instead for wxDropSource ctor arguments: it will use
34
// the cursor 'name' from the resources under MSW, but will expand to
35
// something else under GTK. If you don't use it, you will have to use #ifdef
36
// in the application code.
37
#define wxDROP_ICON(name) wxCursor(_T(#name))
39
// ----------------------------------------------------------------------------
40
// wxDropSource is used to start the drag-&-drop operation on associated
41
// wxDataObject object. It's responsible for giving UI feedback while dragging.
42
// ----------------------------------------------------------------------------
44
class WXDLLEXPORT wxDropSource : public wxDropSourceBase
47
// ctors: if you use default ctor you must call SetData() later!
49
// NB: the "wxWindow *win" parameter is unused and is here only for wxGTK
50
// compatibility, as well as both icon parameters
51
wxDropSource(wxWindow *win = NULL,
52
const wxCursor &cursorCopy = wxNullCursor,
53
const wxCursor &cursorMove = wxNullCursor,
54
const wxCursor &cursorStop = wxNullCursor);
55
wxDropSource(wxDataObject& data,
57
const wxCursor &cursorCopy = wxNullCursor,
58
const wxCursor &cursorMove = wxNullCursor,
59
const wxCursor &cursorStop = wxNullCursor);
61
virtual ~wxDropSource();
63
// do it (call this in response to a mouse button press, for example)
64
// params: if bAllowMove is false, data can be only copied
65
virtual wxDragResult DoDragDrop(int flags = wxDrag_CopyOnly);
67
// overridable: you may give some custom UI feedback during d&d operation
68
// in this function (it's called on each mouse move, so it shouldn't be
69
// too slow). Just return false if you want default feedback.
70
virtual bool GiveFeedback(wxDragResult effect);
76
wxIDropSource *m_pIDropSource; // the pointer to COM interface
78
DECLARE_NO_COPY_CLASS(wxDropSource)
81
#endif //wxUSE_DRAG_AND_DROP
83
#endif //_WX_OLEDROPSRC_H