void TextAreaMouseMove(object sender, MouseEventArgs e) { _textArea.MousePos = e.Location; // honour the starting selection strategy switch (_textArea.SelectionManager.WhereFrom) { case SelSource.Gutter: ExtendSelectionToMouse(); return; case SelSource.TArea: break; } _textArea.ShowHiddenCursor(false); if (_dodragdrop) { _dodragdrop = false; return; } _doubleclick = false; _textArea.MousePos = new Point(e.X, e.Y); if (_clickedOnSelectedText) { if (Math.Abs(_mousedownpos.X - e.X) >= SystemInformation.DragSize.Width / 2 || Math.Abs(_mousedownpos.Y - e.Y) >= SystemInformation.DragSize.Height / 2) { _clickedOnSelectedText = false; //Selection selection = textArea.SelectionManager.GetSelectionAt(textArea.Caret.Offset); if (_textArea.SelectionManager.IsSelected(_textArea.Caret.Offset)) { string text = _textArea.SelectionManager.SelectedText; bool isReadOnly = _textArea.SelectionManager.SelectionIsReadonly; if (text != null && text.Length > 0) { DataObject dataObject = new DataObject(); dataObject.SetData(DataFormats.UnicodeText, true, text); dataObject.SetData(_textArea.SelectionManager.SelectedText); _dodragdrop = true; _textArea.DoDragDrop(dataObject, isReadOnly ? DragDropEffects.All & ~DragDropEffects.Move : DragDropEffects.All); } } } return; } if (e.Button == MouseButtons.Left) { if (_gotmousedown && _textArea.SelectionManager.WhereFrom == SelSource.TArea) { ExtendSelectionToMouse(); } } }
private void TextAreaMouseMove(object sender, MouseEventArgs e) { textArea.mousepos = e.Location; // honour the starting selection strategy switch (textArea.SelectionManager.selectFrom.where) { case WhereFrom.Gutter: ExtendSelectionToMouse(); return; case WhereFrom.TArea: break; } textArea.ShowHiddenCursor(false); if (dodragdrop) { dodragdrop = false; return; } doubleclick = false; textArea.mousepos = new Point(e.X, e.Y); if (clickedOnSelectedText) { if (Math.Abs(mousedownpos.X - e.X) >= SystemInformation.DragSize.Width / 2 || Math.Abs(mousedownpos.Y - e.Y) >= SystemInformation.DragSize.Height / 2) { clickedOnSelectedText = false; ISelection selection = textArea.SelectionManager.GetSelectionAt(textArea.Caret.Offset); if (selection != null) { string text = selection.SelectedText; bool isReadOnly = SelectionManager.SelectionIsReadOnly(textArea.Document, selection); if (!string.IsNullOrEmpty(text)) { DataObject dataObject = new DataObject(); dataObject.SetData(DataFormats.UnicodeText, true, text); dataObject.SetData(selection); dodragdrop = true; textArea.DoDragDrop(dataObject, isReadOnly ? DragDropEffects.All & ~DragDropEffects.Move : DragDropEffects.All); } } } return; } if (e.Button == MouseButtons.Left) { if (gotmousedown && textArea.SelectionManager.selectFrom.where == WhereFrom.TArea) { ExtendSelectionToMouse(); } } }
void TextAreaMouseMove(object sender, MouseEventArgs e) { Point mousepos; mousepos = textArea.mousepos; // honour the starting selection strategy switch (textArea.SelectionManager.selectFrom.where) { case WhereFrom.Gutter: //moveGutter(sender, e); ExtendSelectionToMouse(); break; case WhereFrom.TArea: break; } ShowHiddenCursor(); if (dodragdrop) { dodragdrop = false; return; } doubleclick = false; textArea.mousepos = new Point(e.X, e.Y); if (clickedOnSelectedText) { if (Math.Abs(mousedownpos.X - mousepos.X) >= SystemInformation.DragSize.Width / 2 || Math.Abs(mousedownpos.Y - mousepos.Y) >= SystemInformation.DragSize.Height / 2) { clickedOnSelectedText = false; ISelection selection = textArea.SelectionManager.GetSelectionAt(textArea.Caret.Offset); if (selection != null) { string text = selection.SelectedText; if (text != null && text.Length > 0) { DataObject dataObject = new DataObject(); dataObject.SetData(DataFormats.UnicodeText, true, text); dataObject.SetData(selection); dodragdrop = true; textArea.DoDragDrop(dataObject, DragDropEffects.All); } } } return; } if (e.Button == MouseButtons.Left) { if (gotmousedown && textArea.SelectionManager.selectFrom.where == WhereFrom.TArea) { ExtendSelectionToMouse(); } } }
void TextAreaMouseMove(object sender, MouseEventArgs e) { ShowHiddenCursor(); if (dodragdrop) { dodragdrop = false; return; } doubleclick = false; mousepos = new Point(e.X, e.Y); if (clickedOnSelectedText) { if (Math.Abs(mousedownpos.X - mousepos.X) >= SystemInformation.DragSize.Width / 2 || Math.Abs(mousedownpos.Y - mousepos.Y) >= SystemInformation.DragSize.Height / 2) { clickedOnSelectedText = false; ISelection selection = textArea.SelectionManager.GetSelectionAt(textArea.Caret.Offset); if (selection != null) { string text = selection.SelectedText; if (text != null && text.Length > 0) { DataObject dataObject = new DataObject(); dataObject.SetData(DataFormats.UnicodeText, true, text); dataObject.SetData(selection); dodragdrop = true; textArea.DoDragDrop(dataObject, DragDropEffects.All); } } } return; } if (e.Button == MouseButtons.Left) { if (gotmousedown) { ExtendSelectionToMouse(); } } }
void TextAreaMouseMove(object sender, MouseEventArgs e) { ShowHiddenCursor(); if (dodragdrop) { dodragdrop = false; return; } doubleclick = false; mousepos = new Point(e.X, e.Y); if (clickedOnSelectedText) { if (Math.Abs(mousedownpos.X - mousepos.X) >= SystemInformation.DragSize.Width / 2 || Math.Abs(mousedownpos.Y - mousepos.Y) >= SystemInformation.DragSize.Height / 2) { clickedOnSelectedText = false; ISelection selection = textArea.SelectionManager.GetSelectionAt(textArea.Caret.Offset); if (selection != null) { if (textArea.EnableCutOrPaste == true) { string text = selection.SelectedText; if (text != null && text.Length > 0) { DataObject dataObject = new DataObject(); dataObject.SetData(DataFormats.UnicodeText, true, text); dataObject.SetData(selection); dodragdrop = true; textArea.DoDragDrop(dataObject, DragDropEffects.All); } } } } return; } if (e.Button == MouseButtons.None) { FoldMarker marker = textArea.TextView.GetFoldMarkerFromPosition(mousepos.X - textArea.TextView.DrawingPosition.X, mousepos.Y - textArea.TextView.DrawingPosition.Y); if (marker != null && marker.IsFolded) { StringBuilder sb = new StringBuilder(marker.InnerText); // max 10 lines int endLines = 0; for (int i = 0; i < sb.Length; ++i) { if (sb[i] == '\n') { ++endLines; if (endLines >= 10) { sb.Remove(i + 1, sb.Length - i - 1); sb.Append(Environment.NewLine); sb.Append("..."); break; } } } sb.Replace("\t", " "); textArea.SetToolTip(sb.ToString()); return; } Point clickPosition2 = textArea.TextView.GetLogicalPosition(mousepos.X - textArea.TextView.DrawingPosition.X, mousepos.Y - textArea.TextView.DrawingPosition.Y); ArrayList markers = textArea.Document.MarkerStrategy.GetMarkers(clickPosition2); foreach (TextMarker tm in markers) { if (tm.ToolTip != null) { textArea.SetToolTip(tm.ToolTip.Replace("\t", " ")); return; } } } if (e.Button == MouseButtons.Left) { if (gotmousedown) { ExtendSelectionToMouse(); } } }