wxWidgets/include/wx/os2/dnd.h
David Webster e6ebb51430 *** empty log message ***
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4160 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-10-24 15:57:35 +00:00

122 lines
3.6 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: dnd.h
// Purpose: declaration of the wxDropTarget class
// Author: David Webster
// Modified by:
// Created: 10/21/99
// RCS-ID: $Id$
// Copyright: (c) 1999 David Webster
// Licence: wxWindows license
///////////////////////////////////////////////////////////////////////////////
#ifndef __OS2DNDH__
#define __OS2DNDH__
#ifdef __GNUG__
#pragma interface
#endif
#if !wxUSE_DRAG_AND_DROP
#error "You should #define wxUSE_DRAG_AND_DROP to 1 to compile this file!"
#endif //WX_DRAG_DROP
//-------------------------------------------------------------------------
// wxDropSource
//-------------------------------------------------------------------------
class WXDLLEXPORT wxDropSource: public wxDropSourceBase
{
public:
/* constructor. set data later with SetData() */
wxDropSource(wxWindow* pWin);
/* constructor for setting one data object */
wxDropSource( wxDataObject& rData,
wxWindow* pWin
);
virtual ~wxDropSource();
/* start drag action */
virtual wxDragResult DoDragDrop(bool bAllowMove = FALSE);
protected:
void Init(void);
bool m_bLazyDrag;
DRAGIMAGE* m_pDragImage;
DRAGINFO* m_pDragInfo;
DRAGTRANSFER* m_pDragTransfer;
};
//-------------------------------------------------------------------------
// wxDropTarget
//-------------------------------------------------------------------------
class WXDLLEXPORT wxDropTarget: public wxDropTargetBase
{
public:
wxDropTarget(wxDataObject *dataObject = (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 bool OnData(wxCoord x, wxCoord y);
virtual bool GetData();
// implementation
protected:
virtual bool IsAcceptable(DRAGINFO* pInfo);
DRAGINFO* m_pDragInfo;
DRAGTRANSFER* m_pDragTransfer;
};
// ----------------------------------------------------------------------------
// A simple wxDropTarget derived class for text data: you only need to
// override OnDropText() to get something working
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxTextDropTarget : public wxDropTarget
{
public:
wxTextDropTarget();
virtual ~wxTextDropTarget();
virtual bool OnDropText( wxCoord x
,wxCoord y
,const wxString& rText
) = 0;
virtual bool OnData( wxCoord x
,wxCoord y
);
};
// ----------------------------------------------------------------------------
// A drop target which accepts files (dragged from File Manager or Explorer)
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxFileDropTarget : public wxDropTarget
{
public:
wxFileDropTarget();
virtual ~wxFileDropTarget();
// parameters are the number of files and the array of file names
virtual bool OnDropFiles( wxCoord x
,wxCoord y
,const wxArrayString& rFilenames
) = 0;
virtual bool OnData( wxCoord x
,wxCoord y
);
};
#endif //__OS2DNDH__