X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/20947e08ca1865197bab22b3b5874fb104ceb16b..323d36e452c48f1e48ffe48312004d5e224634ca:/include/wx/os2/dnd.h diff --git a/include/wx/os2/dnd.h b/include/wx/os2/dnd.h index ec8277545c..ee3c574515 100644 --- a/include/wx/os2/dnd.h +++ b/include/wx/os2/dnd.h @@ -6,7 +6,7 @@ // Created: 10/21/99 // RCS-ID: $Id$ // Copyright: (c) 1999 David Webster -// Licence: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -19,13 +19,17 @@ #define INCL_WINSTDDRAG #include +#ifndef __EMX__ #include +#endif + +class CIDropTarget; //------------------------------------------------------------------------- // wxDropSource //------------------------------------------------------------------------- -class WXDLLEXPORT wxDropSource: public wxDropSourceBase +class WXDLLIMPEXP_CORE wxDropSource: public wxDropSourceBase { public: /* constructor. set data later with SetData() */ @@ -38,42 +42,58 @@ public: virtual ~wxDropSource(); /* start drag action */ - virtual wxDragResult DoDragDrop(bool bAllowMove = FALSE); + virtual wxDragResult DoDragDrop(int flags = wxDrag_CopyOnly); + virtual bool GiveFeedback(wxDragResult eEffect); protected: void Init(void); - bool m_bLazyDrag; - DRAGIMAGE* m_pDragImage; - DRAGINFO* m_pDragInfo; - DRAGTRANSFER* m_pDragTransfer; -}; + ULONG m_ulItems; + PDRAGINFO m_pDragInfo; + DRAGIMAGE m_vDragImage; + PDRAGITEM m_pDragItem; + wxWindow* m_pWindow; +}; // end of CLASS wxDropSource //------------------------------------------------------------------------- // wxDropTarget //------------------------------------------------------------------------- -class WXDLLEXPORT wxDropTarget: public wxDropTargetBase +class WXDLLIMPEXP_CORE wxDropTarget : public wxDropTargetBase { public: - wxDropTarget(wxDataObject *dataObject = (wxDataObject*)NULL); + wxDropTarget(wxDataObject* pDataObject = NULL); virtual ~wxDropTarget(); - void Register(WXHWND hwnd); - void Revoke(WXHWND hwnd); - - virtual wxDragResult OnDragOver(wxCoord x, wxCoord y, wxDragResult def); - virtual bool OnDrop(wxCoord x, wxCoord y); - virtual wxDragResult OnData(wxCoord x, wxCoord y, wxDragResult vResult); - virtual bool GetData(); + // + // These functions are called when data is moved over position (x, y) and + // may return either wxDragCopy, wxDragMove or wxDragNone depending on + // what would happen if the data were dropped here. + // + // The last parameter is what would happen by default and is determined by + // the platform-specific logic (for example, under Windows it's wxDragCopy + // if Ctrl key is pressed and wxDragMove otherwise) except that it will + // always be wxDragNone if the carried data is in an unsupported format. + // + // OnData must be implemented and other should be overridden by derived classes + // + virtual wxDragResult OnData( wxCoord vX + ,wxCoord vY + ,wxDragResult eResult + ); + virtual bool OnDrop( wxCoord vX + ,wxCoord vY + ); + bool IsAcceptedData(PDRAGINFO pDataSource) const; - // implementation protected: - virtual bool IsAcceptable(DRAGINFO* pInfo); + virtual bool GetData(void); + wxDataFormat GetSupportedFormat(PDRAGINFO pDataSource) const; + void Release(void); - DRAGINFO* m_pDragInfo; - DRAGTRANSFER* m_pDragTransfer; -}; +private: + CIDropTarget* m_pDropTarget; +}; // end of CLASS wxDropTarget #endif //__OS2DNDH__