| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- ///////////////////////////////////////////////////////////////////////////////
- // Name: wx/motif/dnd.h
- // Purpose: declaration of wxDropTarget, wxDropSource classes
- // Author: Julian Smart
- // Copyright: (c) 1998 Vadim Zeitlin, Robert Roebling, Julian Smart
- // Licence: wxWindows licence
- ///////////////////////////////////////////////////////////////////////////////
- #ifndef _WX_DND_H_
- #define _WX_DND_H_
- #include "wx/defs.h"
- #if wxUSE_DRAG_AND_DROP
- #include "wx/object.h"
- #include "wx/string.h"
- #include "wx/dataobj.h"
- #include "wx/cursor.h"
- //-------------------------------------------------------------------------
- // classes
- //-------------------------------------------------------------------------
- class WXDLLIMPEXP_FWD_CORE wxWindow;
- class WXDLLIMPEXP_FWD_CORE wxDropTarget;
- class WXDLLIMPEXP_FWD_CORE wxTextDropTarget;
- class WXDLLIMPEXP_FWD_CORE wxFileDropTarget;
- class WXDLLIMPEXP_FWD_CORE wxPrivateDropTarget;
- class WXDLLIMPEXP_FWD_CORE wxDropSource;
- //-------------------------------------------------------------------------
- // wxDropTarget
- //-------------------------------------------------------------------------
- class WXDLLIMPEXP_CORE wxDropTarget: public wxObject
- {
- public:
- wxDropTarget();
- virtual ~wxDropTarget();
- virtual void OnEnter() { }
- virtual void OnLeave() { }
- virtual bool OnDrop( long x, long y, const void *data, size_t size ) = 0;
- // Override these to indicate what kind of data you support:
- virtual size_t GetFormatCount() const = 0;
- virtual wxDataFormat GetFormat(size_t n) const = 0;
- // implementation
- };
- //-------------------------------------------------------------------------
- // wxTextDropTarget
- //-------------------------------------------------------------------------
- class WXDLLIMPEXP_CORE wxTextDropTarget: public wxDropTarget
- {
- public:
- wxTextDropTarget() {}
- virtual bool OnDrop( long x, long y, const void *data, size_t size );
- virtual bool OnDropText( long x, long y, const char *psz );
- protected:
- virtual size_t GetFormatCount() const;
- virtual wxDataFormat GetFormat(size_t n) const;
- };
- //-------------------------------------------------------------------------
- // wxPrivateDropTarget
- //-------------------------------------------------------------------------
- class WXDLLIMPEXP_CORE wxPrivateDropTarget: public wxDropTarget
- {
- public:
- wxPrivateDropTarget();
- // you have to override OnDrop to get at the data
- // the string ID identifies the format of clipboard or DnD data. a word
- // processor would e.g. add a wxTextDataObject and a wxPrivateDataObject
- // to the clipboard - the latter with the Id "WXWORD_FORMAT".
- void SetId( const wxString& id )
- { m_id = id; }
- wxString GetId()
- { return m_id; }
- private:
- virtual size_t GetFormatCount() const;
- virtual wxDataFormat GetFormat(size_t n) const;
- wxString m_id;
- };
- // ----------------------------------------------------------------------------
- // A drop target which accepts files (dragged from File Manager or Explorer)
- // ----------------------------------------------------------------------------
- class WXDLLIMPEXP_CORE wxFileDropTarget: public wxDropTarget
- {
- public:
- wxFileDropTarget() {}
- virtual bool OnDrop( long x, long y, const void *data, size_t size );
- virtual bool OnDropFiles( long x, long y,
- size_t nFiles, const char * const aszFiles[] );
- protected:
- virtual size_t GetFormatCount() const;
- virtual wxDataFormat GetFormat(size_t n) const;
- };
- //-------------------------------------------------------------------------
- // wxDropSource
- //-------------------------------------------------------------------------
- enum wxDragResult
- {
- wxDragError, // error prevented the d&d operation from completing
- wxDragNone, // drag target didn't accept the data
- wxDragCopy, // the data was successfully copied
- wxDragMove, // the data was successfully moved
- wxDragCancel // the operation was cancelled by user (not an error)
- };
- class WXDLLIMPEXP_CORE wxDropSource: public wxObject
- {
- public:
- wxDropSource( wxWindow *win );
- wxDropSource( wxDataObject &data, wxWindow *win );
- virtual ~wxDropSource(void);
- void SetData( wxDataObject &data );
- wxDragResult DoDragDrop(int flags = wxDrag_CopyOnly);
- virtual bool GiveFeedback( wxDragResult WXUNUSED(effect), bool WXUNUSED(bScrolling) ) { return true; }
- // implementation
- #if 0
- void RegisterWindow(void);
- void UnregisterWindow(void);
- wxWindow *m_window;
- wxDragResult m_retValue;
- wxDataObject *m_data;
- wxCursor m_defaultCursor;
- wxCursor m_goaheadCursor;
- #endif
- };
- #endif
- // wxUSE_DRAG_AND_DROP
- #endif
- //_WX_DND_H_
|