-class wxDropSource;
-
-//-------------------------------------------------------------------------
-// wxDropSource
-//-------------------------------------------------------------------------
-
-enum wxDragResult
-{
- wxDragError, // error prevented the d&d operation from completing
- wxDragNone, // drag target didn't accept the data
- wxDragCopy, // the data was successfully copied
- wxDragMove, // the data was successfully moved (MSW only)
- wxDragCancel // the operation was cancelled by user (not an error)
-};
-
-class wxDropSource: public wxObject
-{
-public:
-
- /* constructor. set data later with SetData() */
- wxDropSource( wxWindow *win, const wxIcon &go = wxNullIcon, const wxIcon &stop = wxNullIcon );
-
- /* constructor for setting one data object */
- wxDropSource( wxDataObject *data, wxWindow *win, const wxIcon &go = wxNullIcon, const wxIcon &stop = wxNullIcon );
-
- /* constructor for setting several data objects via wxDataBroker */
- wxDropSource( wxDataBroker *data, wxWindow *win );
-
- ~wxDropSource();
-
- /* set several dataobjects via wxDataBroker */
- void SetData( wxDataBroker *data );
-
- /* set one dataobject */
- void SetData( wxDataObject *data );
-
- /* start drag action */
- wxDragResult DoDragDrop( bool bAllowMove = FALSE );
-
- /* override to give feedback */
- virtual bool GiveFeedback( wxDragResult WXUNUSED(effect), bool WXUNUSED(bScrolling) ) { return TRUE; }
-
- /* GTK implementation */
-
- void RegisterWindow();
- void UnregisterWindow();
-
- GtkWidget *m_widget;
- wxWindow *m_window;
- wxDragResult m_retValue;
- wxDataBroker *m_data;
-
- wxCursor m_defaultCursor;
- wxCursor m_goaheadCursor;
-
- wxIcon m_goIcon;
- wxIcon m_stopIcon;
-};
-
-#include "gtk/gtk.h"
-#if (GTK_MINOR_VERSION > 0)
+// this macro may be used instead for wxDropSource ctor arguments: it will use
+// the icon 'name' from an XPM file under GTK, but will expand to something
+// else under MSW. If you don't use it, you will have to use #ifdef in the
+// application code.
+#define wxDROP_ICON(name) wxICON(name)