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); } }
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); }
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)); }
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(); } }
public void MouseRelease(MarginMouseEventArgs args) { }
void IActionTextLineMarker.MouseHover(MonoTextEditor editor, MarginMouseEventArgs args, TextLineMarkerHoverResult result) { MouseHover?.Invoke(this, new TextEventArgsWrapper(args)); result.Cursor = textLinkCursor; }
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; }
// 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); }
bool IActionTextLineMarker.MousePressed(Mono.TextEditor.MonoTextEditor editor, MarginMouseEventArgs args) { var handler = MousePressed; if (handler != null) { handler(this, new TextEventArgsWrapper(args)); } return(false); }
public void MousePress(MarginMouseEventArgs args) { }
bool IActionTextLineMarker.MousePressed(MonoTextEditor editor, MarginMouseEventArgs args) { MousePressed?.Invoke(this, new TextEventArgsWrapper(args)); return(false); }
public void MouseHover(MarginMouseEventArgs args) { }
public override void InformMouseHover(MonoTextEditor editor, Margin margin, MarginMouseEventArgs args) { editor.TextArea.QuickFixMargin.HoveredSmartTagMarker = this; }