- public:
-
- wxDragSource( wxWindow *win );
- ~wxDragSource(void);
- void SetData( char *data, long size );
- void Start( int x, int y );
-
- public:
-
- void ConnectWindow(void);
- void UnconnectWindow(void);
- virtual void RegisterWindow(void) = 0;
- void UnregisterWindow(void);
-
- GtkWidget *m_widget;
- wxWindow *m_window;
- char *m_data;
- long m_size;
- wxCursor m_defaultCursor;
- wxCursor m_goaheadCursor;
+public:
+
+ /* sets id to "application/myprogram" where "myprogram" is the
+ same as wxApp->GetAppName() */
+ wxPrivateDropTarget();
+ /* see SetId() below for explanation */
+ wxPrivateDropTarget( const wxString &id );
+
+ virtual bool OnMove( long x, long y );
+ virtual bool OnDrop( long x, long y );
+ virtual bool OnData( long x, long y );
+
+ /* you have to override OnDropData to get at the data */
+ virtual bool OnDropData( long x, long y, void *data, size_t size ) = 0;
+
+ /* 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 "application/wxword" or
+ "image/png". */
+ void SetId( const wxString& id ) { m_id = id; }
+ wxString GetId() { return m_id; }
+
+private:
+
+ wxString m_id;
+};
+
+//----------------------------------------------------------------------------
+// A drop target which accepts files (dragged from File Manager or Explorer)
+//----------------------------------------------------------------------------
+
+class wxFileDropTarget: public wxDropTarget
+{
+public:
+
+ wxFileDropTarget() {}
+
+ virtual bool OnMove( long x, long y );
+ virtual bool OnDrop( long x, long y );
+ virtual bool OnData( long x, long y );
+
+ /* you have to override OnDropFiles to get at the file names */
+ virtual bool OnDropFiles( long x, long y, size_t nFiles, const wxChar * const aszFiles[] ) = 0;
+