X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e1ee679c2e3f48bc4f2607e35033ed5505ed6665..d44d0cbd7343e36ddd3657dd97cd5eb7018d2585:/include/wx/msw/ole/dropsrc.h diff --git a/include/wx/msw/ole/dropsrc.h b/include/wx/msw/ole/dropsrc.h index aa9283f65c..2b383a3ab6 100644 --- a/include/wx/msw/ole/dropsrc.h +++ b/include/wx/msw/ole/dropsrc.h @@ -12,13 +12,11 @@ #ifndef _WX_OLEDROPSRC_H #define _WX_OLEDROPSRC_H -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface #endif -#if !wxUSE_DRAG_AND_DROP - #error "You should #define wxUSE_DRAG_AND_DROP to 1 to compile this file!" -#endif //WX_DRAG_DROP +#if wxUSE_DRAG_AND_DROP // ---------------------------------------------------------------------------- // forward declarations @@ -28,12 +26,22 @@ class wxIDropSource; class WXDLLEXPORT wxDataObject; class WXDLLEXPORT wxWindow; +// ---------------------------------------------------------------------------- +// macros +// ---------------------------------------------------------------------------- + +// this macro may be used instead for wxDropSource ctor arguments: it will use +// the cursor 'name' from the resources under MSW, but will expand to +// something else under GTK. If you don't use it, you will have to use #ifdef +// in the application code. +#define wxDROP_ICON(name) wxCursor(_T(#name)) + // ---------------------------------------------------------------------------- // wxDropSource is used to start the drag-&-drop operation on associated // wxDataObject object. It's responsible for giving UI feedback while dragging. // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxDropSource +class WXDLLEXPORT wxDropSource : public wxDropSourceBase { public: // ctors: if you use default ctor you must call SetData() later! @@ -41,29 +49,35 @@ public: // NB: the "wxWindow *win" parameter is unused and is here only for wxGTK // compatibility, as well as both icon parameters wxDropSource(wxWindow *win = NULL, - const wxIcon &go = wxNullIcon, - const wxIcon &stop = wxNullIcon ); + const wxCursor &cursorCopy = wxNullCursor, + const wxCursor &cursorMove = wxNullCursor, + const wxCursor &cursorStop = wxNullCursor); wxDropSource(wxDataObject& data, - wxWindow *win = NULL, - const wxIcon &go = wxNullIcon, - const wxIcon &stop = wxNullIcon ); + wxWindow *win = NULL, + const wxCursor &cursorCopy = wxNullCursor, + const wxCursor &cursorMove = wxNullCursor, + const wxCursor &cursorStop = wxNullCursor); virtual ~wxDropSource(); // do it (call this in response to a mouse button press, for example) // params: if bAllowMove is false, data can be only copied - virtual wxDragResult DoDragDrop(bool bAllowMove = FALSE); + virtual wxDragResult DoDragDrop(int flags = wxDrag_CopyOnly); // overridable: you may give some custom UI feedback during d&d operation // in this function (it's called on each mouse move, so it shouldn't be // too slow). Just return false if you want default feedback. - virtual bool GiveFeedback(wxDragResult effect, bool bScrolling); + virtual bool GiveFeedback(wxDragResult effect); protected: void Init(); private: wxIDropSource *m_pIDropSource; // the pointer to COM interface + + DECLARE_NO_COPY_CLASS(wxDropSource) }; +#endif //wxUSE_DRAG_AND_DROP + #endif //_WX_OLEDROPSRC_H