X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e1ee679c2e3f48bc4f2607e35033ed5505ed6665..e18bf7e7c6477b82203375141aee69656ac2d987:/include/wx/msw/ole/droptgt.h?ds=inline diff --git a/include/wx/msw/ole/droptgt.h b/include/wx/msw/ole/droptgt.h index 1a7716f2a5..a4648b5edf 100644 --- a/include/wx/msw/ole/droptgt.h +++ b/include/wx/msw/ole/droptgt.h @@ -9,9 +9,6 @@ // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// -// ============================================================================ -// prolog -// ============================================================================ #ifndef _WX_OLEDROPTGT_H #define _WX_OLEDROPTGT_H @@ -20,12 +17,13 @@ #endif #if !wxUSE_DRAG_AND_DROP - #error "You should #define wxUSE_DRAG_AND_DROP to 1 to compile this file!" + #error "You should #define wxUSE_DRAG_AND_DROP to 1 to compile this file!" #endif //WX_DRAG_DROP // ---------------------------------------------------------------------------- // forward declarations // ---------------------------------------------------------------------------- + class wxIDropTarget; struct IDataObject; @@ -38,11 +36,12 @@ struct IDataObject; // your own class from it implementing pure virtual function in order to use it // (all of them, including protected ones which are called by the class itself) // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxDropTarget + +class WXDLLEXPORT wxDropTarget : public wxDropTargetBase { public: // ctor & dtor - wxDropTarget(); + wxDropTarget(wxDataObject *dataObject = NULL); virtual ~wxDropTarget(); // normally called by wxWindow on window creation/destruction, but might be @@ -50,62 +49,26 @@ public: bool Register(WXHWND hwnd); void Revoke(WXHWND hwnd); - // do we accept this kind of data? - virtual bool IsAcceptedData(IDataObject *pIDataSource) const; + // provide default implementation for base class pure virtuals + virtual bool OnDrop(wxCoord x, wxCoord y); + virtual bool GetData(); - // called when mouse enters/leaves the window: might be used to give - // some visual feedback to the user - virtual void OnEnter() { } - virtual void OnLeave() { } + // implementation only from now on + // ------------------------------- - // this function is called when data is dropped. - // (x, y) are the coordinates of the drop - virtual bool OnDrop(long x, long y, const void *pData) = 0; + // do we accept this kind of data? + bool IsAcceptedData(IDataObject *pIDataSource) const; -protected: - // Override these to indicate what kind of data you support: the first - // format to which data can be converted is used. The classes below show - // how it can be done in the simplest cases. - // how many different (clipboard) formats do you support? - virtual size_t GetFormatCount() const = 0; - // return the n-th supported format - virtual wxDataFormat GetFormat(size_t n) const = 0; + // give us the data source from IDropTarget::Drop() - this is later used by + // GetData() when it's called from inside OnData() + void SetDataSource(IDataObject *pIDataSource); private: - wxIDropTarget *m_pIDropTarget; // the pointer to COM interface -}; - -// ---------------------------------------------------------------------------- -// A simple wxDropTarget derived class for text data: you only need to -// override OnDropText() to get something working -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTextDropTarget : public wxDropTarget -{ -public: - virtual bool OnDrop(long x, long y, const void *pData); - virtual bool OnDropText(long x, long y, const wxChar *psz) = 0; - -protected: - virtual size_t GetFormatCount() const; - virtual wxDataFormat GetFormat(size_t n) const; -}; - -// ---------------------------------------------------------------------------- -// A drop target which accepts files (dragged from File Manager or Explorer) -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFileDropTarget : public wxDropTarget -{ -public: - virtual bool OnDrop(long x, long y, const void *pData); - - // params: the number of files and the array of file names - virtual bool OnDropFiles(long x, long y, - size_t nFiles, const wxChar * const aszFiles[]) = 0; + // helper used by IsAcceptedData() and GetData() + wxDataFormat GetSupportedFormat(IDataObject *pIDataSource) const; -protected: - virtual size_t GetFormatCount() const; - virtual wxDataFormat GetFormat(size_t n) const; + wxIDropTarget *m_pIDropTarget; // the pointer to our COM interface + IDataObject *m_pIDataSource; // the pointer to the source data object }; -// ============================================================================ #endif //_WX_OLEDROPTGT_H