コード例 #1
0
        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();
                }
            }
        }
コード例 #2
0
        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();
                }
            }
        }
コード例 #3
0
        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();
                }
            }
        }
コード例 #4
0
        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();
                }
            }
        }
コード例 #5
0
        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();
                }
            }
        }