コード例 #1
0
ファイル: DataConverter.cs プロジェクト: jbeaurain/xwt
        public static DataObject ToDataObject(this TransferDataSource data)
        {
            var retval = new DataObject ();
            foreach (var type in data.DataTypes) {
                var value = data.GetValue (type);

                if (type == TransferDataType.Text)
                    retval.SetText ((string)value);
                else if (type == TransferDataType.Uri) {
                    var uris = new StringCollection ();
                    uris.Add (((Uri)value).LocalPath);
                    retval.SetFileDropList (uris);
                } else
                    retval.SetData (type.Id, TransferDataSource.SerializeValue (value));
            }

            return retval;
        }
コード例 #2
0
ファイル: Test.xaml.cs プロジェクト: shu2333/dnGrep
		static void DragStarted(UIElement uiElt)
		{
			_isMouseDown = false;
			Mouse.Capture(uiElt);

			DataObject data = new DataObject();
			//obj.SetData(DataFormats.Text, "Text from WPF - CrossApp example");
			StringCollection files = new StringCollection();
			files.Add(@"C:\Documents and Settings\528046\Desktop\crystal_project\readme.txt");
			data.SetFileDropList(files);
			DragDropEffects supportedEffects = DragDropEffects.Move | DragDropEffects.Copy;

			// Perform DragDrop
			DragDropEffects effects = System.Windows.DragDrop.DoDragDrop(_draggedElt, data, supportedEffects);

			// Clean up
			Mouse.Capture(null);
			_draggedElt = null;
		}
コード例 #3
0
        public override void Execute(object parameter)
        {
            var active = MainViewModel.ActiveDirectoryContainer.ActiveView;
            if (!active.FileSystem.IsWindowsFileSystem)
            {
                MessageBox.Show("To polecenie działa tylko w windows'owym systemie plików");
                return;
            }

            //get items to copy
            var items = MainViewModel.GetSelectedItems();
            if (items.Length == 0)
            {
                MessageBox.Show("Zaznacz obiekty do skopiowania");
                return;
            }

            //get paths to copy from items
            var paths = new StringCollection();
            foreach (IDirectoryViewItem item in items)
                paths.Add(item.FullName);

            //and here goes magic
            //set special binary data that indicates that file must be copy
            byte[] moveEffect = new byte[] { 5, 0, 0, 0 };//copy
            var dropEffect = new MemoryStream();
            dropEffect.Write(moveEffect, 0, moveEffect.Length);

            //set data object with file's paths
            DataObject data = new DataObject();
            data.SetFileDropList(paths);
            data.SetData("Preferred DropEffect", dropEffect);

            //set data object in clipboard
            Clipboard.Clear();
            //dropEffect.Close();
            Clipboard.SetDataObject(data, true);
        }
コード例 #4
0
        private void tlSaveToFile_MouseDown(object sender, MouseButtonEventArgs e)
        {
            var senderElement = sender as FrameworkElement;

            if (senderElement == null)
            {
                return;
            }

            var strData = gvData.Items.Cast <TicTacToeGame>().Select(x => x.ToString() + "," + x.ResultString.Before("(").Trim()).ToDelimitedString("\n");
            var fd      = new FileDescriptor
            {
                Name     = "KółkoKrzyżyk.txt",
                Contents = Encoding.UTF8.GetBytes(strData)
            };
            var fullPath = SaveFIleToTemp(fd);
            var dragObj  = new DataObject();

            dragObj.SetFileDropList(new StringCollection {
                fullPath
            });
            DragDrop.DoDragDrop(senderElement, dragObj, DragDropEffects.Copy);
        }
コード例 #5
0
        private void contentView_PreviewMouseMove(object sender, MouseEventArgs e)
        {
            var senderObj = sender as ScoreboardControl;

            if (senderObj == null)
            {
                // This shouldn't happen.
                return;
            }

            // Get the current mouse position
            Point mousePos = e.GetPosition(null);
            Vector diff = this.startPoint - mousePos;

            if (e.LeftButton == MouseButtonState.Pressed &&
                (Math.Abs(diff.X) > SystemParameters.MinimumHorizontalDragDistance ||
                Math.Abs(diff.Y) > SystemParameters.MinimumVerticalDragDistance))
            {
                string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "starboard.xbs");

               if (File.Exists(path) == false)
               {
                   return;
               }

                var strCol = new StringCollection { path };

                var o = new DataObject(DataFormats.FileDrop, strCol);
                o.SetFileDropList(strCol);
                DragDrop.DoDragDrop(senderObj, o, DragDropEffects.Copy);
            }
        }
コード例 #6
0
        void OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (!IsMouseCaptured)
            {
                dragStart = e.GetPosition(this);
                ShellObjectCollection collection = new ShellObjectCollection();
                System.Collections.IList list =
                    (DropDataList.SelectedItems.Count > 0) ?
                        DropDataList.SelectedItems : DropDataList.Items;

                foreach (ShellObject shellObject in list)
                {
                    collection.Add(shellObject);
                }

                if (collection.Count > 0)
                {
                    // This builds a DataObject from a "Shell IDList Array" formatted memory stream.
                    // This allows drag/clipboard operations with non-file based ShellObjects (i.e., 
                    // control panel, libraries, search query results)
                    dataObject = new DataObject(
                        "Shell IDList Array",
                        collection.BuildShellIDList());

                    // Also build a file drop list
                    System.Collections.Specialized.StringCollection paths = new System.Collections.Specialized.StringCollection();
                    foreach (ShellObject shellObject in collection)
                    {
                        if (shellObject.IsFileSystemObject)
                        {
                            paths.Add(shellObject.ParsingName);
                        }
                    }
                    if (paths.Count > 0)
                        dataObject.SetFileDropList(paths);
                }
            }
        }
コード例 #7
0
ファイル: ResultsTree.xaml.cs プロジェクト: shu2333/dnGrep
        private void treeDragStarted(UIElement uiElt)
        {
            _isMouseDown = false;
            Mouse.Capture(uiElt);

            DataObject data = new DataObject();

            if (tvSearchResult.SelectedItem is FormattedGrepLine)
            {
                FormattedGrepLine selectedNode = (FormattedGrepLine)tvSearchResult.SelectedItem;
                data.SetData(DataFormats.Text, selectedNode.GrepLine.LineText);
            }
            else if (tvSearchResult.SelectedItem is FormattedGrepResult)
            {
                FormattedGrepResult result = (FormattedGrepResult)tvSearchResult.SelectedItem;
                StringCollection files = new StringCollection();
                files.Add(result.GrepResult.FileNameReal);
                data.SetFileDropList(files);
            }


            DragDropEffects supportedEffects = DragDropEffects.Move | DragDropEffects.Copy;
            // Perform DragDrop
            DragDropEffects effects = System.Windows.DragDrop.DoDragDrop(_draggedElt, data, supportedEffects);

            // Clean up
            Mouse.Capture(null);
            _draggedElt = null;
        }
コード例 #8
0
        public void CopyOnClipboard()
        {
            try
            {
                if (!isEmpty)
                {
                    if (IsAudio)
                    {
                        Clipboard.SetAudio(Audio);
                    }
                    else if (IsText)
                    {
                        Clipboard.SetText(Text);
                    }
                    else if (IsFile)
                    {

                        //Impostare il l'effetto taglia per rimuovere dai file temporanei
                        MemoryStream dropEffect = new MemoryStream();
                        dropEffect.Write(CUT_EFFECT, 0, CUT_EFFECT.Length);
                        DataObject data = new DataObject();
                        data.SetFileDropList(FileDropList);
                        data.SetData("Preferred DropEffect", dropEffect);
                        Clipboard.Clear();
                        Clipboard.SetDataObject(data, true);

                    }
                    else
                    {

                        MemoryStream ms = new MemoryStream(Image);
                        ms.Position = 0;
                        BitmapImage image = new BitmapImage();
                        image.BeginInit();
                        image.StreamSource = ms;
                        image.EndInit();
                        Clipboard.SetImage(image);
                    }
                }
            }
            catch (Exception ex) { Trace.TraceError("Exception in CopyOnClipboard()", ex.StackTrace); }
        }
コード例 #9
0
ファイル: DataConverter.cs プロジェクト: TheBrainTech/xwt
		public static DataObject ToDataObject (this TransferDataSource data)
		{
			var retval = new DataObject ();
			foreach (var type in data.DataTypes) {
				var value = data.GetValue (type);

				if (type == TransferDataType.Text) {
					retval.SetText ((string)value);
				}
				else if (type == TransferDataType.Uri) {
					Uri uri = (Uri)value;
					if (uri.IsFile) {
						var uris = new StringCollection ();
						uris.Add (uri.LocalPath);
						retval.SetFileDropList (uris);
					} else {
						string strOrig = uri.ToString();
						string str = strOrig + ((char)0);
						char[] chars = str.ToArray();
						byte[] bytes = Encoding.UTF8.GetBytes(chars, 0, chars.Length);
						MemoryStream stream = new MemoryStream(bytes);
						retval.SetData ("UniformResourceLocator", stream);
					}
				} else
					retval.SetData (type.Id, TransferDataSource.SerializeValue (value));
			}

			string anyUri = data.LinkUri != null ? data.LinkUri.ToString() : null;
			string anyPath = data.LinkTmpPath;
			if (anyUri != null && anyPath != null) {
				// write tmp file to disk with /path/to/tmp/Page-Title.url
				string urlContents = "[InternetShortcut]\nURL=" + anyUri;
				File.WriteAllText(anyPath, urlContents);
				StringCollection strCollect = new StringCollection();
				strCollect.Add(anyPath);
				retval.SetFileDropList(strCollect);
			}

			return retval;
		}
コード例 #10
0
ファイル: ClipboardData.cs プロジェクト: xyandro/NeoEdit
		public void SetSystem()
		{
			var dataObj = new DataObject();

			dataObj.SetText(Text, TextDataFormat.UnicodeText);
			dataObj.SetData(typeof(NELocalClipboard), PID);

			if (IsCut.HasValue)
			{
				var dropList = new StringCollection();
				dropList.AddRange(Strings.ToArray());
				dataObj.SetFileDropList(dropList);
				dataObj.SetData("Preferred DropEffect", new MemoryStream(BitConverter.GetBytes((int)(IsCut == true ? DragDropEffects.Move : DragDropEffects.Copy | DragDropEffects.Link))));
			}

			if (Image != null)
				dataObj.SetImage(Image);

			Clipboard.SetDataObject(dataObj, true);
		}
コード例 #11
0
        private void ClipboardReceived(object sender, RunWorkerCompletedEventArgs eventArgs)
        {
            if (!eventArgs.Cancelled && eventArgs.Error == null)
            {
                ArrayList data = (ArrayList)eventArgs.Result;
                if (data != null)
                {
                    DataObject dataObj = new DataObject();
                    Console.WriteLine("Count: " + data.Count);
                    for (int i = 0; i < data.Count; i++)
                    {
                        string format = (string)data[i++];
                        Console.WriteLine(format);
                        dataObj.SetData(format, data[i]);
                    }

                    if (dataObj.ContainsFileDropList())
                    {
                        StringCollection files = dataObj.GetFileDropList();
                        dataObj = new DataObject();
                        StringCollection adjusted = new StringCollection();
                        foreach (string f in files)
                        {
                            if (!f.StartsWith("\\"))
                            {
                                string toadd = "\\\\" + Ip + "\\" + f.Replace(":", "");
                                Console.WriteLine(toadd);
                                adjusted.Add(toadd);
                            }
                            else
                            {
                                adjusted.Add(f);
                            }
                        }
                        dataObj.SetFileDropList(adjusted);
                    }
                    Clipboard.SetDataObject(dataObj);

                }
            }
        }
コード例 #12
0
ファイル: NodeTreeItem.cs プロジェクト: faboo/faux
        protected override void OnMouseMove(MouseEventArgs args)
        {
            if(args.LeftButton == MouseButtonState.Pressed
                && clickedIn) {
                Point cursorAt = args.GetPosition(this);

                if(Math.Abs(cursorAt.X - clickStarted.X) > 5 ||
                    Math.Abs(cursorAt.Y - clickStarted.Y) > 5) {
                    DataObject dragData = new DataObject(
                        typeof(Node),
                        Node);
                    string root = System.IO.Path.GetDirectoryName(
                        Node.Project.SavePath);

                    if(Node is File)
                        dragData.SetFileDropList(new StringCollection {
                                Path.Combine(root, (DataContext as File).RealPath)
                            });
                    else if(Node is OtherFile)
                        dragData.SetFileDropList(new StringCollection {
                                Path.Combine(root, (DataContext as OtherFile).RealPath)
                            });
                    else if(Node is ExternalFile)
                        dragData.SetFileDropList(new StringCollection {
                                (DataContext as ExternalFile).RealPath
                            });
                    else if(Node is ExternalFolder)
                        dragData.SetFileDropList(new StringCollection {
                                (DataContext as ExternalFolder).RealPath
                            });

                    DragDrop.DoDragDrop(this, DataContext, DragDropEffects.Move | DragDropEffects.Link);

                    args.Handled = true;
                }
            }
            else {
                clickedIn = false;
                base.OnMouseMove(args);
            }
        }
        public void SetClipboard(string Ip, Object obj)
        {
            try
            {
                ArrayList data = (ArrayList)obj;
                if (data != null)
                {
                    DataObject dataObj = new DataObject();
                    Console.WriteLine("Count: " + data.Count);
                    for (int i = 0; i < data.Count; i++)
                    {
                        string format = (string)data[i++];
                        Console.WriteLine(format);
                        dataObj.SetData(format, data[i]);
                    }
                    if (dataObj.ContainsFileDropList())
                    {
                        StringCollection files = dataObj.GetFileDropList();
                        dataObj = new DataObject();
                        StringCollection adjusted = new StringCollection();
                        foreach (string f in files)
                        {
                            if (!f.StartsWith("\\"))
                            {
                                string toadd = "\\\\" + Ip + "\\" + f.Replace(":", "");
                                Console.WriteLine(toadd);
                                adjusted.Add(toadd);
                            }
                            else
                            {
                                adjusted.Add(f);
                            }
                        }
                        dataObj.SetFileDropList(adjusted);
                    }
                    Clipboard.SetDataObject(dataObj);

                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }