• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/amule/wxWidgets-2.8.12/include/wx/mac/classic/
1///////////////////////////////////////////////////////////////////////////////
2// Name:        wx/mac/classic/dnd.h
3// Purpose:     Declaration of the wxDropTarget, wxDropSource class etc.
4// Author:      Stefan Csomor
5// RCS-ID:      $Id: dnd.h 42077 2006-10-17 14:44:52Z ABX $
6// Copyright:   (c) 1998 Stefan Csomor
7// Licence:     wxWindows licence
8///////////////////////////////////////////////////////////////////////////////
9
10#ifndef _WX_DND_H_
11#define _WX_DND_H_
12
13#if wxUSE_DRAG_AND_DROP
14
15#include "wx/defs.h"
16#include "wx/object.h"
17#include "wx/string.h"
18#include "wx/string.h"
19#include "wx/dataobj.h"
20#include "wx/cursor.h"
21
22//-------------------------------------------------------------------------
23// classes
24//-------------------------------------------------------------------------
25
26class WXDLLEXPORT wxWindow;
27
28class WXDLLEXPORT wxDropTarget;
29class WXDLLEXPORT wxTextDropTarget;
30class WXDLLEXPORT wxFileDropTarget;
31
32class WXDLLEXPORT wxDropSource;
33
34// ----------------------------------------------------------------------------
35// macros
36// ----------------------------------------------------------------------------
37
38// this macro may be used instead for wxDropSource ctor arguments: it will use
39// the icon 'name' from an XPM file under GTK, but will expand to something
40// else under MSW. If you don't use it, you will have to use #ifdef in the
41// application code.
42#define wxDROP_ICON(X)   wxCursor( (const char**) X##_xpm )
43
44//-------------------------------------------------------------------------
45// wxDropTarget
46//-------------------------------------------------------------------------
47
48class WXDLLEXPORT wxDropTarget: public wxDropTargetBase
49{
50  public:
51
52    wxDropTarget(wxDataObject *dataObject = (wxDataObject*) NULL );
53
54    virtual wxDragResult OnDragOver(wxCoord x, wxCoord y, wxDragResult def);
55    virtual bool OnDrop(wxCoord x, wxCoord y);
56    virtual wxDragResult OnData(wxCoord x, wxCoord y, wxDragResult def);
57    virtual bool GetData();
58
59    bool CurrentDragHasSupportedFormat() ;
60    void SetCurrentDrag( void* drag ) { m_currentDrag = drag ; }
61    void* GetCurrentDrag() { return m_currentDrag ; }
62  protected :
63    void* m_currentDrag ;
64};
65
66//-------------------------------------------------------------------------
67// wxDropSource
68//-------------------------------------------------------------------------
69
70class WXDLLEXPORT wxDropSource: public wxDropSourceBase
71{
72public:
73    // ctors: if you use default ctor you must call SetData() later!
74    //
75    // NB: the "wxWindow *win" parameter is unused and is here only for wxGTK
76    //     compatibility, as well as both icon parameters
77    wxDropSource( wxWindow *win = (wxWindow *)NULL,
78                 const wxCursor &cursorCopy = wxNullCursor,
79                 const wxCursor &cursorMove = wxNullCursor,
80                 const wxCursor &cursorStop = wxNullCursor);
81
82    /* constructor for setting one data object */
83    wxDropSource( wxDataObject& data,
84                  wxWindow *win,
85                 const wxCursor &cursorCopy = wxNullCursor,
86                 const wxCursor &cursorMove = wxNullCursor,
87                 const wxCursor &cursorStop = wxNullCursor);
88
89    virtual ~wxDropSource();
90
91    // do it (call this in response to a mouse button press, for example)
92    // params: if bAllowMove is false, data can be only copied
93    virtual wxDragResult DoDragDrop(int flags = wxDrag_CopyOnly);
94
95    wxWindow*     GetWindow() { return m_window ; }
96    void SetCurrentDrag( void* drag ) { m_currentDrag = drag ; }
97    void* GetCurrentDrag() { return m_currentDrag ; }
98    bool MacInstallDefaultCursor(wxDragResult effect) ;
99protected :
100
101    wxWindow        *m_window;
102    void* m_currentDrag ;
103};
104
105#endif // wxUSE_DRAG_AND_DROP
106
107#endif
108    //_WX_DND_H_
109