2007/12/14, Draek <[EMAIL PROTECTED]>:
> I'm trying to do some drag and drop from nautilus, but for some reason I
> get 2 text/uri-list entries in seperate events when dropping ONE file.
>
Do you have the code or a sample available somewhere? How does the
attached program work for you?

Eskil
using System;
using System.Text;
using Gtk;

public class Test
{
	enum TargetType {
		Text,
		Uri
	};

	static Gtk.TargetEntry[] targetEntries = {
		new TargetEntry ("string", 0, (uint)TargetType.Text),
		new TargetEntry ("text/plain",	0, (uint)TargetType.Text),
		new TargetEntry ("text/uri-list", 0, (uint)TargetType.Uri)
	};

	public static void Main()
	{
		Application.Init();

		Window window = new Window("Test");
		window.DeleteEvent += OnDeleteEvent;
		window.Show();

		Drag.DestSet(window, DestDefaults.All, targetEntries, Gdk.DragAction.Copy);
		window.DragDataReceived += OnDragDataReceived;

		Application.Run();
	}

	static void OnDragDataReceived (object o, DragDataReceivedArgs args)
	{
		Console.WriteLine("OnDragDataReceived: {0}", (TargetType)args.Info);

		switch ((TargetType)args.Info)
		{
			case TargetType.Text:
				Console.WriteLine(Encoding.UTF8.GetString(args.SelectionData.Data).Trim());
				break;

			case TargetType.Uri:
				foreach (string uri in Encoding.UTF8.GetString(args.SelectionData.Data).Trim().Split('\n'))
					Console.WriteLine("Uri: {0}", Uri.UnescapeDataString(uri));
				break;
		}
		Console.WriteLine();
	}

	static void OnDeleteEvent (object o, DeleteEventArgs args)
	{
		Application.Quit ();
	}
}
_______________________________________________
Gtk-sharp-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/gtk-sharp-list

Reply via email to