Ejemplo n.º 1
0
		public void MouseHover (TextEditor editor, MarginMouseEventArgs args, TextLineMarkerHoverResult result)
		{
			if (this.LineSegment == null)
				return;
			bool isOver = MouseIsOverMarker (editor, args);
			if (isOver != oldIsOver)
				editor.Document.CommitLineUpdate (this.LineSegment);
			oldIsOver = isOver;
			
			int errorNumber = MouseIsOverError (editor, args);
			if (errorNumber >= 0) {
				result.Cursor = cache.arrowCursor;
				if (!isOver)
					// don't show tooltip when hovering over error counter layout.
					result.TooltipMarkup = GLib.Markup.EscapeText (errors[errorNumber].ErrorMessage);
			}
			
		}
Ejemplo n.º 2
0
 public override void InformMouseHover(MonoTextEditor editor, Margin margin, MarginMouseEventArgs args)
 {
     base.InformMouseHover(editor, margin, args);
     if (!string.IsNullOrEmpty(Tooltip))
     {
         if (CanDrawForeground(margin))
         {
             // update tooltip during the next ui loop run,
             // otherwise Gtk will not update the position of the tooltip
             Gtk.Application.Invoke(delegate {
                 args.Editor.TooltipText = Tooltip;
             });
         }
         else if (args.Editor.TooltipText == Tooltip)
         {
             args.Editor.TooltipText = null;
         }
     }
 }
        int MouseIsOverError(TextEditor editor, MarginMouseEventArgs args)
        {
            if (layouts == null)
            {
                return(-1);
            }
            int    lineNumber = editor.Document.OffsetToLineNumber(lineSegment.Offset);
            double y          = editor.LineToY(lineNumber) - editor.VAdjustment.Value;
            double height     = editor.LineHeight * errors.Count;

            if (!fitsInSameLine)
            {
                y += editor.LineHeight;
            }
//			Console.WriteLine (lineNumber +  ": height={0}, y={1}, args={2}", height, y, args.Y);
            if (y > args.Y || args.Y > y + height)
            {
                return(-1);
            }
            int error = (int)((args.Y - y) / editor.LineHeight);

//			Console.WriteLine ("error:" + error);
            if (error >= layouts.Count)
            {
                return(-1);
            }
            int errorCounterWidth = GetErrorCountBounds().Item1;

            double labelWidth = LayoutWidth + border + (ShowIconsInBubble ? cache.errorPixbuf.Width : 0) + errorCounterWidth + editor.LineHeight / 2;

            var layout = editor.TextViewMargin.GetLayout(lineSegment);

            var lineTextPx = editor.TextViewMargin.XOffset + editor.TextViewMargin.TextStartPosition + layout.PangoWidth / Pango.Scale.PangoScale;

            labelWidth = Math.Min(editor.Allocation.Width - lineTextPx - editor.TextViewMargin.TextStartPosition, labelWidth);

            if (editor.Allocation.Width - editor.TextViewMargin.XOffset - labelWidth < args.X)
            {
                return(error);
            }

            return(-1);
        }
Ejemplo n.º 4
0
            void IActionTextLineMarker.MouseHover(TextEditor editor, MarginMouseEventArgs args, TextLineMarkerHoverResult result)
            {
                if (args.Button != 0)
                {
                    return;
                }
                var line = editor.GetLine(loc.Line);
                var x    = editor.ColumnToX(line, loc.Column) - editor.HAdjustment.Value;
                var y    = editor.LineToY(line.LineNumber) - editor.VAdjustment.Value;

                if (args.X - x >= 0 * editor.Options.Zoom &&
                    args.X - x < tagMarkerWidth * editor.Options.Zoom &&
                    y - args.Y < (tagMarkerHeight) * editor.Options.Zoom)
                {
                    Popup();
                }
                else
                {
                    codeActionEditorExtension.CancelSmartTagPopupTimeout();
                }
            }
 bool IActionTextLineMarker.MouseReleased(MonoTextEditor editor, MarginMouseEventArgs args)
 {
     return(false);
 }
 bool IActionTextLineMarker.MousePressed(TextEditor editor, MarginMouseEventArgs args)
 {
     return(false);
 }
 public bool MousePressed(TextEditor editor, MarginMouseEventArgs args)
 {
     return(false);
 }
            public override void InformMousePress(TextEditor editor, Margin margin, MarginMouseEventArgs args)
            {
                if (!(margin is ActionMargin))
                {
                    return;
                }
                if (menu != null)
                {
                    menu.Destroy();
                }
                var debugModeSet = Runtime.ProcessService.GetDebugExecutionMode();

                menu = new Menu();
                if (unitTest.IsFixture)
                {
                    var menuItem = new MenuItem("_Run All");
                    menuItem.Activated += new TestRunner(doc, unitTest.UnitTestIdentifier, false).Run;
                    menu.Add(menuItem);
                    if (debugModeSet != null)
                    {
                        menuItem            = new MenuItem("_Debug All");
                        menuItem.Activated += new TestRunner(doc, unitTest.UnitTestIdentifier, true).Run;
                        menu.Add(menuItem);
                    }
                    menuItem            = new MenuItem("_Select in Test Pad");
                    menuItem.Activated += new TestRunner(doc, unitTest.UnitTestIdentifier, true).Select;
                    menu.Add(menuItem);
                }
                else
                {
                    if (unitTest.TestCases.Count == 0)
                    {
                        var menuItem = new MenuItem("_Run");
                        menuItem.Activated += new TestRunner(doc, unitTest.UnitTestIdentifier, false).Run;
                        menu.Add(menuItem);
                        if (debugModeSet != null)
                        {
                            menuItem            = new MenuItem("_Debug");
                            menuItem.Activated += new TestRunner(doc, unitTest.UnitTestIdentifier, true).Run;
                            menu.Add(menuItem);
                        }
                        menuItem            = new MenuItem("_Select in Test Pad");
                        menuItem.Activated += new TestRunner(doc, unitTest.UnitTestIdentifier, true).Select;
                        menu.Add(menuItem);
                    }
                    else
                    {
                        var menuItem = new MenuItem("_Run All");
                        menuItem.Activated += new TestRunner(doc, unitTest.UnitTestIdentifier, false).Run;
                        menu.Add(menuItem);
                        if (debugModeSet != null)
                        {
                            menuItem            = new MenuItem("_Debug All");
                            menuItem.Activated += new TestRunner(doc, unitTest.UnitTestIdentifier, true).Run;
                            menu.Add(menuItem);
                        }
                        menu.Add(new SeparatorMenuItem());
                        foreach (var id in unitTest.TestCases)
                        {
                            var submenu = new Menu();
                            menuItem            = new MenuItem("_Run");
                            menuItem.Activated += new TestRunner(doc, unitTest.UnitTestIdentifier + id, false).Run;
                            submenu.Add(menuItem);
                            if (debugModeSet != null)
                            {
                                menuItem            = new MenuItem("_Debug");
                                menuItem.Activated += new TestRunner(doc, unitTest.UnitTestIdentifier + id, true).Run;
                                submenu.Add(menuItem);
                            }

                            var    label   = "Test" + id;
                            string tooltip = null;
                            var    test    = NUnitService.Instance.SearchTestById(unitTest.UnitTestIdentifier + id);
                            if (test != null)
                            {
                                var result = test.GetLastResult();
                                if (result != null && result.IsFailure)
                                {
                                    tooltip = result.Message;
                                    label  += "!";
                                }
                            }

                            menuItem            = new MenuItem("_Select in Test Pad");
                            menuItem.Activated += new TestRunner(doc, unitTest.UnitTestIdentifier + id, true).Select;
                            submenu.Add(menuItem);


                            var subMenuItem = new MenuItem(label);
                            if (!string.IsNullOrEmpty(tooltip))
                            {
                                subMenuItem.TooltipText = tooltip;
                            }
                            subMenuItem.Submenu = submenu;
                            menu.Add(subMenuItem);
                        }
                    }
                }
                menu.ShowAll();
                editor.TextArea.ResetMouseState();
                GtkWorkarounds.ShowContextMenu(menu, editor, new Gdk.Rectangle((int)args.X, (int)args.Y, 1, 1));
            }
Ejemplo n.º 9
0
        protected internal override void MousePressed(MarginMouseEventArgs args)
        {
            base.MousePressed(args);

            if (args.Button == Xwt.PointerButton.Left)
            {
                var basePoint = editor.Caret.Location = XYToLocation(args.X, args.Y);

                editor.Selection = new TextSegment();

                int clickMode = args.MultipleClicks % 3;
                if (clickMode == 2)
                {
                    // TODO: Select Word
                }
                else if (clickMode == 0)
                {
                    SelectLine();
                }

                editor.RegisterMouseMotionTracker(Xwt.PointerButton.Left, (x, y) =>
                {
                    var newPoint = XYToLocation(x, y);
                    editor.Caret.Location = newPoint;
                    editor.ResetCaretState();

                    var newOffset = editor.Document.GetOffset(newPoint);
                    var oldOffset = editor.Document.GetOffset(basePoint);

                    var startOffset = Math.Min(oldOffset, newOffset);
                    var endOffset = Math.Max(oldOffset, newOffset);

                    editor.Selection = TextSegment.FromBounds(startOffset, endOffset);

                    if (clickMode == 0)
                    {
                        SelectLines();
                    }

                    editor.QueueDraw();
                });

                editor.ResetCaretState();
            }
        }
Ejemplo n.º 10
0
 public void MouseRelease(MarginMouseEventArgs args)
 {
 }
 void IActionTextLineMarker.MouseHover(MonoTextEditor editor, MarginMouseEventArgs args, TextLineMarkerHoverResult result)
 {
     MouseHover?.Invoke(this, new TextEventArgsWrapper(args));
     result.Cursor = textLinkCursor;
 }
Ejemplo n.º 12
0
        public override void InformMouseHover(Mono.TextEditor.MonoTextEditor editor, Margin margin, MarginMouseEventArgs args)
        {
            if (!(margin is ActionMargin))
            {
                return;
            }
            string toolTip;

            if (unitTest.IsFixture)
            {
                if (isFailed)
                {
                    toolTip = GettextCatalog.GetString("NUnit Fixture failed (click to run)");
                    if (!string.IsNullOrEmpty(failMessage))
                    {
                        toolTip += Environment.NewLine + failMessage.TrimEnd();
                    }
                }
                else
                {
                    toolTip = GettextCatalog.GetString("NUnit Fixture (click to run)");
                }
            }
            else
            {
                if (isFailed)
                {
                    toolTip = GettextCatalog.GetString("NUnit Test failed (click to run)");
                    if (!string.IsNullOrEmpty(failMessage))
                    {
                        toolTip += Environment.NewLine + failMessage.TrimEnd();
                    }
                    foreach (var id in unitTest.TestCases)
                    {
                        if (host.IsFailure(unitTest.UnitTestIdentifier, id))
                        {
                            var msg = host.GetMessage(unitTest.UnitTestIdentifier, id);
                            if (!string.IsNullOrEmpty(msg))
                            {
                                toolTip += Environment.NewLine + "Test" + id + ":";
                                toolTip += Environment.NewLine + msg.TrimEnd();
                            }
                        }
                    }
                }
                else
                {
                    toolTip = GettextCatalog.GetString("NUnit Test (click to run)");
                }
            }
            editor.TooltipText = toolTip;
        }
Ejemplo n.º 13
0
//		static Menu menu;

        public override void InformMousePress(Mono.TextEditor.MonoTextEditor editor, Margin margin, MarginMouseEventArgs args)
        {
            if (!(margin is ActionMargin))
            {
                return;
            }
            host.PopupContextMenu(unitTest, (int)(args.X + margin.XOffset), (int)args.Y);
            editor.TextArea.ResetMouseState();
        }
            public override void InformMousePress(TextEditor editor, Margin margin, MarginMouseEventArgs args)
            {
                if (!(margin is ActionMargin))
                {
                    return;
                }

                var debugModeSet = Runtime.ProcessService.GetDebugExecutionMode();

                var menu = new ContextMenu();

                if (unitTest.IsFixture)
                {
                    var menuItem = new ContextMenuItem("_Run All");
                    menuItem.Clicked += new TestRunner(doc, unitTest.UnitTestIdentifier, false).Run;
                    menu.Items.Add(menuItem);

                    if (debugModeSet != null)
                    {
                        menuItem          = new ContextMenuItem("_Debug All");
                        menuItem.Clicked += new TestRunner(doc, unitTest.UnitTestIdentifier, true).Run;
                        menu.Items.Add(menuItem);
                    }

                    menuItem          = new ContextMenuItem("_Select in Test Pad");
                    menuItem.Clicked += new TestRunner(doc, unitTest.UnitTestIdentifier, true).Select;
                    menu.Items.Add(menuItem);
                }
                else
                {
                    if (unitTest.TestCases.Count == 0)
                    {
                        var menuItem = new ContextMenuItem("_Run");
                        menuItem.Clicked += new TestRunner(doc, unitTest.UnitTestIdentifier, false).Run;
                        menu.Items.Add(menuItem);
                        if (debugModeSet != null)
                        {
                            menuItem          = new ContextMenuItem("_Debug");
                            menuItem.Clicked += new TestRunner(doc, unitTest.UnitTestIdentifier, true).Run;
                            menu.Items.Add(menuItem);
                        }
                        menuItem          = new ContextMenuItem("_Select in Test Pad");
                        menuItem.Clicked += new TestRunner(doc, unitTest.UnitTestIdentifier, true).Select;
                        menu.Items.Add(menuItem);
                    }
                    else
                    {
                        var menuItem = new ContextMenuItem("_Run All");
                        menuItem.Clicked += new TestRunner(doc, unitTest.UnitTestIdentifier, false).Run;
                        menu.Items.Add(menuItem);
                        if (debugModeSet != null)
                        {
                            menuItem          = new ContextMenuItem("_Debug All");
                            menuItem.Clicked += new TestRunner(doc, unitTest.UnitTestIdentifier, true).Run;
                            menu.Items.Add(menuItem);
                        }
                        menu.Items.Add(new SeparatorContextMenuItem());
                        foreach (var id in unitTest.TestCases)
                        {
                            var submenu = new ContextMenu();
                            menuItem          = new ContextMenuItem("_Run");
                            menuItem.Clicked += new TestRunner(doc, unitTest.UnitTestIdentifier + id, false).Run;
                            submenu.Items.Add(menuItem);
                            if (debugModeSet != null)
                            {
                                menuItem          = new ContextMenuItem("_Debug");
                                menuItem.Clicked += new TestRunner(doc, unitTest.UnitTestIdentifier + id, true).Run;
                                submenu.Items.Add(menuItem);
                            }

                            var    label   = "Test" + id;
                            string tooltip = null;
                            var    test    = NUnitService.Instance.SearchTestById(unitTest.UnitTestIdentifier + id);
                            if (test != null)
                            {
                                var result = test.GetLastResult();
                                if (result != null && result.IsFailure)
                                {
                                    tooltip = result.Message;
                                    label  += "!";
                                }
                            }

                            menuItem          = new ContextMenuItem("_Select in Test Pad");
                            menuItem.Clicked += new TestRunner(doc, unitTest.UnitTestIdentifier + id, true).Select;
                            submenu.Items.Add(menuItem);

                            var subMenuItem = new ContextMenuItem(label);
                            //if (!string.IsNullOrEmpty (tooltip))
                            //	subMenuItem.TooltipText = tooltip;

                            subMenuItem.SubMenu = submenu;
                            menu.Items.Add(subMenuItem);
                        }
                    }
                }

                menu.Show(editor, (int)(args.X + margin.XOffset), (int)args.Y);
            }
Ejemplo n.º 15
0
        bool IActionTextLineMarker.MousePressed(Mono.TextEditor.MonoTextEditor editor, MarginMouseEventArgs args)
        {
            var handler = MousePressed;

            if (handler != null)
            {
                handler(this, new TextEventArgsWrapper(args));
            }
            return(false);
        }
Ejemplo n.º 16
0
 public void MousePress(MarginMouseEventArgs args)
 {
 }
Ejemplo n.º 17
0
 bool IActionTextLineMarker.MousePressed(MonoTextEditor editor, MarginMouseEventArgs args)
 {
     MousePressed?.Invoke(this, new TextEventArgsWrapper(args));
     return(false);
 }
Ejemplo n.º 18
0
 public void MouseHover(MarginMouseEventArgs args)
 {
 }
Ejemplo n.º 19
0
 public override void InformMouseHover(MonoTextEditor editor, Margin margin, MarginMouseEventArgs args)
 {
     editor.TextArea.QuickFixMargin.HoveredSmartTagMarker = this;
 }