]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/ole/droptgt.h
Don't create multiple parent-less top level frames in layout sample.
[wxWidgets.git] / include / wx / msw / ole / droptgt.h
index a4648b5edfc81ea3e241e627d98e98e9d4fa9fda..7b6599092293fa031825582762e879aaf566bd78 100644 (file)
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        ole/droptgt.h
+// Name:        wx/msw/ole/droptgt.h
 // Purpose:     declaration of the wxDropTarget class
 // Author:      Vadim Zeitlin
 // Modified by:
 #ifndef   _WX_OLEDROPTGT_H
 #define   _WX_OLEDROPTGT_H
 
-#ifdef __GNUG__
-#pragma interface "droptgt.h"
-#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
 // ----------------------------------------------------------------------------
 
 class  wxIDropTarget;
+struct wxIDropTargetHelper;
 struct IDataObject;
 
 // ----------------------------------------------------------------------------
@@ -37,7 +32,7 @@ struct IDataObject;
 // (all of them, including protected ones which are called by the class itself)
 // ----------------------------------------------------------------------------
 
-class WXDLLEXPORT wxDropTarget : public wxDropTargetBase
+class WXDLLIMPEXP_CORE wxDropTarget : public wxDropTargetBase
 {
 public:
     // ctor & dtor
@@ -53,22 +48,43 @@ public:
     virtual bool OnDrop(wxCoord x, wxCoord y);
     virtual bool GetData();
 
+    // Can only be called during OnXXX methods.
+    wxDataFormat GetMatchingPair();
+
     // implementation only from now on
     // -------------------------------
 
     // do we accept this kind of data?
-    bool IsAcceptedData(IDataObject *pIDataSource) const;
+    bool MSWIsAcceptedData(IDataObject *pIDataSource) const;
 
     // 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);
+    void MSWSetDataSource(IDataObject *pIDataSource);
+
+    // These functions take care of all things necessary to support native drag
+    // images.
+    //
+    // {Init,End}DragImageSupport() are called during Register/Revoke,
+    // UpdateDragImageOnXXX() functions are called on the corresponding drop
+    // target events.
+    void MSWInitDragImageSupport();
+    void MSWEndDragImageSupport();
+    void MSWUpdateDragImageOnData(wxCoord x, wxCoord y, wxDragResult res);
+    void MSWUpdateDragImageOnDragOver(wxCoord x, wxCoord y, wxDragResult res);
+    void MSWUpdateDragImageOnEnter(wxCoord x, wxCoord y, wxDragResult res);
+    void MSWUpdateDragImageOnLeave();
 
 private:
     // helper used by IsAcceptedData() and GetData()
-    wxDataFormat GetSupportedFormat(IDataObject *pIDataSource) const;
+    wxDataFormat MSWGetSupportedFormat(IDataObject *pIDataSource) const;
 
-    wxIDropTarget *m_pIDropTarget; // the pointer to our COM interface
-    IDataObject   *m_pIDataSource; // the pointer to the source data object
+    wxIDropTarget     *m_pIDropTarget; // the pointer to our COM interface
+    IDataObject       *m_pIDataSource; // the pointer to the source data object
+    wxIDropTargetHelper *m_dropTargetHelper; // the drop target helper
+
+    wxDECLARE_NO_COPY_CLASS(wxDropTarget);
 };
 
+#endif  //wxUSE_DRAG_AND_DROP
+
 #endif  //_WX_OLEDROPTGT_H