- gtk_signal_connect( GTK_OBJECT(widget), "drag_leave",
- GTK_SIGNAL_FUNC(target_drag_leave), (gpointer) this );
-
- gtk_signal_connect( GTK_OBJECT(widget), "drag_motion",
- GTK_SIGNAL_FUNC(target_drag_motion), (gpointer) this );
-
- gtk_signal_connect( GTK_OBJECT(widget), "drag_drop",
- GTK_SIGNAL_FUNC(target_drag_drop), (gpointer) this );
-
- gtk_signal_connect( GTK_OBJECT(widget), "drag_data_received",
- GTK_SIGNAL_FUNC(target_drag_data_received), (gpointer) this );
-}
-
-//-------------------------------------------------------------------------
-// wxTextDropTarget
-//-------------------------------------------------------------------------
-
-bool wxTextDropTarget::OnMove( int WXUNUSED(x), int WXUNUSED(y) )
-{
- return IsSupported( wxDF_TEXT );
-}
-
-bool wxTextDropTarget::OnDrop( int WXUNUSED(x), int WXUNUSED(y) )
-{
- if (IsSupported( wxDF_TEXT ))
- {
- RequestData( wxDF_TEXT );
- return TRUE;
- }
-
- return FALSE;
-}
-
-bool wxTextDropTarget::OnData( int x, int y )
-{
- wxTextDataObject data;
- if (!GetData( &data )) return FALSE;
-
- OnDropText( x, y, data.GetText() );
-
- return TRUE;
-}
-
-//-------------------------------------------------------------------------
-// wxPrivateDropTarget
-//-------------------------------------------------------------------------
-
-wxPrivateDropTarget::wxPrivateDropTarget()
-{
- m_id = wxTheApp->GetAppName();
-}
-
-wxPrivateDropTarget::wxPrivateDropTarget( const wxString &id )
-{
- m_id = id;
-}
-
-bool wxPrivateDropTarget::OnMove( int WXUNUSED(x), int WXUNUSED(y) )
-{
- return IsSupported( m_id );
-}
-
-bool wxPrivateDropTarget::OnDrop( int WXUNUSED(x), int WXUNUSED(y) )
-{
- if (!IsSupported( m_id ))
- {
- RequestData( m_id );
- return FALSE;
- }
-
- return FALSE;
-}
-
-bool wxPrivateDropTarget::OnData( int x, int y )
-{
- if (!IsSupported( m_id )) return FALSE;
-
- wxPrivateDataObject data;
- if (!GetData( &data )) return FALSE;
-
- OnDropData( x, y, data.GetData(), data.GetSize() );
-
- return TRUE;
-}
-
-//----------------------------------------------------------------------------
-// A drop target which accepts files (dragged from File Manager or Explorer)
-//----------------------------------------------------------------------------
-
-bool wxFileDropTarget::OnMove( int WXUNUSED(x), int WXUNUSED(y) )
-{
- return IsSupported( wxDF_FILENAME );
-}
-
-bool wxFileDropTarget::OnDrop( int x, int y )
-{
- if (IsSupported( wxDF_FILENAME ))
- {
- RequestData( wxDF_FILENAME );
- return TRUE;
- }
-
- return FALSE;
-}
-
-bool wxFileDropTarget::OnData( int x, int y )
-{
- wxFileDataObject data;
- if (!GetData( &data )) return FALSE;
-
- /* get number of substrings /root/mytext.txt/0/root/myothertext.txt/0/0 */
- size_t number = 0;
- size_t i;
- size_t size = data.GetFiles().Length();
- wxChar *text = WXSTRINGCAST data.GetFiles();
- for ( i = 0; i < size; i++)
- if (text[i] == 0) number++;
-
- if (number == 0) return FALSE;
-
- wxChar **files = new wxChar*[number];
-
- text = WXSTRINGCAST data.GetFiles();
- for (i = 0; i < number; i++)
- {
- files[i] = text;
- int len = wxStrlen( text );
- text += len+1;
- }