]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/os2/dnd.h
invalidate m_selection in DoRemovePage(), not in DeletePage() (replaces patch 998984)
[wxWidgets.git] / include / wx / os2 / dnd.h
index ec8277545c9ee99ff70a9bdc137b670605c632e6..2750c04c169bb65a5dc8db7294f66acf6ab3dc95 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     10/21/99
 // RCS-ID:      $Id$
 // Copyright:   (c) 1999 David Webster
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 
 
 #define INCL_WINSTDDRAG
 #include <os2.h>
+#ifndef __EMX__
 #include <pmstddlg.h>
+#endif
+
+class CIDropTarget;
 
 //-------------------------------------------------------------------------
 // wxDropSource
@@ -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 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__