예제 #1
0
        void HandleDragDataGet(object sender, DragDataGetArgs args)
        {
            Logger.Debug ("ImagesFileView.HandleDragDataGet. Sender {0}, args {1}", sender, args.Info);

            string file;
            TreeIter iter;
            TreePath[] items = SelectedItems;
            PathList list = new PathList ();

            for (int i = 0; i < items.Length; i++)
            {
                store.GetIter (out iter, items [i]);
                file = (string) store.GetValue (iter, 0);
                Logger.Debug ("ImagesFileView.HandleDragDataGet. Dropped {0}", file);
                list.Add (file);
            }

            switch (args.Info) {
            case 2: {

                Byte [] data = Encoding.UTF8.GetBytes (list.ToString ());
                Atom [] targets = args.Context.Targets;
                args.SelectionData.Set (targets[0], 2, data);
                Logger.Debug ("ImagesFileView.HandleDragDataGet. Data.Length {0}", data.Length);
                return;
            }
            default:
                Logger.Debug ("ImagesFileView.HandleDragDataGet. Drop cancelled");
                break;
            }

            args.RetVal = true;
        }