X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5b10a619492984cb585ec4b7f55bd7f15eae9ad2..4e2251ecd324ba89c486434485efcb1d32ee7dca:/include/wx/os2/dnd.h?ds=sidebyside diff --git a/include/wx/os2/dnd.h b/include/wx/os2/dnd.h index a92c744745..2750c04c16 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 /////////////////////////////////////////////////////////////////////////////// @@ -23,6 +23,8 @@ #include #endif +class CIDropTarget; + //------------------------------------------------------------------------- // wxDropSource //------------------------------------------------------------------------- @@ -40,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 WXDLLEXPORT wxDropTarget : public wxDropTargetBase { public: - wxDropTarget(wxDataObject *dataObject = (wxDataObject*)NULL); + wxDropTarget(wxDataObject* pDataObject = (wxDataObject*)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__