public virtual void ShowTooltipWindow(TextEditor editor, Window tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { if (tipWindow == null) { return; } TooltipInformationWindow tipInfoWindow = (tipWindow as XwtWindowControl)?.Window as TooltipInformationWindow; if (tipInfoWindow != null) { ShowTipInfoWindow(editor, tipInfoWindow, item, modifierState, mouseX, mouseY); return; } var origin = editor.GetContent <ITextEditorImpl> ().GetEditorWindowOrigin(); var xwtWindow = (Xwt.WindowFrame)tipWindow; xwtWindow.Location = CalculateWindowLocation(editor, item, xwtWindow, mouseX, mouseY, origin); var gtkWindow = Xwt.Toolkit.Load(Xwt.ToolkitType.Gtk).GetNativeWindow(xwtWindow) as Gtk.Window; if (gtkWindow != null) { gtkWindow.ShowAll(); } else { xwtWindow.Show(); } }
public override Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { var result = new LanguageItemWindow (GetExtensibleTextEditor (editor), modifierState, null, (string)item.Item, null); if (result.IsEmpty) return null; return result; }
public virtual void ShowTooltipWindow(TextEditor editor, Control tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { if (tipWindow == null) { return; } var tipInfoWindow = ((Gtk.Widget)tipWindow) as TooltipInformationWindow; if (tipInfoWindow != null) { ShowTipInfoWindow(editor, tipInfoWindow, item, modifierState, mouseX, mouseY); return; } var origin = editor.GetContent <ITextEditorImpl> ().GetEditorWindowOrigin(); int w; double xalign; GetRequiredPosition(editor, tipWindow, out w, out xalign); w += 10; var allocation = GetAllocation(editor); int x = (int)(mouseX + origin.X + allocation.X); int y = (int)(mouseY + origin.Y + allocation.Y); Gtk.Widget widget = editor; var geometry = widget.Screen.GetUsableMonitorGeometry(widget.Screen.GetMonitorAtPoint(x, y)); x -= (int)((double)w * xalign); y += 10; if (x + w >= geometry.X + geometry.Width) { x = geometry.X + geometry.Width - w; } if (x < geometry.Left) { x = geometry.Left; } var gtkWindow = (Gtk.Window)tipWindow; int h = gtkWindow.SizeRequest().Height; if (y + h >= geometry.Y + geometry.Height) { y = geometry.Y + geometry.Height - h; } if (y < geometry.Top) { y = geometry.Top; } gtkWindow.Move(x, y); gtkWindow.ShowAll(); }
public override Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { var result = item.Item as Result; var window = new LanguageItemWindow (CompileErrorTooltipProvider.GetExtensibleTextEditor (editor), modifierState, null, result.Message, null); if (window.IsEmpty) return null; return window; }
public override Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { var result = item.Item as List<Result>; var sb = new StringBuilder (); foreach (var r in result) { var escapedMessage = Ambience.EscapeText (r.Message); if (sb.Length > 0) sb.AppendLine (); if (result.Count > 1) { string severity; HslColor color; switch (r.Level) { case Microsoft.CodeAnalysis.DiagnosticSeverity.Info: severity = GettextCatalog.GetString ("Info"); color = editor.Options.GetColorStyle ().UnderlineHint.Color; break; case Microsoft.CodeAnalysis.DiagnosticSeverity.Warning: severity = GettextCatalog.GetString ("Warning"); color = editor.Options.GetColorStyle ().UnderlineWarning.Color; break; case Microsoft.CodeAnalysis.DiagnosticSeverity.Error: severity = GettextCatalog.GetString ("Error"); color = editor.Options.GetColorStyle ().UnderlineError.Color; break; default: severity = "?"; color = editor.Options.GetColorStyle ().UnderlineSuggestion.Color; break; } sb.Append (string.Format ("<span foreground ='{2}'font_weight='bold'>{0}</span>: {1}", severity, escapedMessage, color.ToPangoString ())); } else { sb.Append (escapedMessage); } } var window = new LanguageItemWindow (CompileErrorTooltipProvider.GetExtensibleTextEditor (editor), modifierState, null, sb.ToString (), null); if (window.IsEmpty) return null; return window; }
protected virtual Xwt.Point CalculateWindowLocation(TextEditor editor, TooltipItem item, Xwt.WindowFrame xwtWindow, int mouseX, int mouseY, Xwt.Point origin) { int w; double xalign; GetRequiredPosition(editor, xwtWindow, out w, out xalign); w += 10; var allocation = GetAllocation(editor); int x = (int)(mouseX + origin.X + allocation.X); int y = (int)(mouseY + origin.Y + allocation.Y); Gtk.Widget widget = editor; var geometry = widget.Screen.GetUsableMonitorGeometry(widget.Screen.GetMonitorAtPoint(x, y)); x -= (int)((double)w * xalign); y += 10; if (x + w >= geometry.X + geometry.Width) { x = geometry.X + geometry.Width - w; } if (x < geometry.Left) { x = geometry.Left; } int h = (int)xwtWindow.Size.Height; if (y + h >= geometry.Y + geometry.Height) { y = geometry.Y + geometry.Height - h; } if (y < geometry.Top) { y = geometry.Top; } return(new Xwt.Point(x, y)); }
void ShowTipInfoWindow(TextEditor editor, TooltipInformationWindow tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { Gtk.Widget editorWidget = editor; var startLoc = editor.OffsetToLocation(item.Offset); var endLoc = editor.OffsetToLocation(item.EndOffset); var p1 = editor.LocationToPoint(startLoc); var p2 = editor.LocationToPoint(endLoc); int w = (int)(p2.X - p1.X); var caret = new Gdk.Rectangle( (int)p1.X, (int)p1.Y, (int)w, (int)editor.LineHeight ); tipWindow.ShowPopup(editorWidget, caret, PopupPosition.Top); }
public virtual Control CreateTooltipWindow(TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { return(null); }
public override void ShowTooltipWindow (TextEditor editor, Control tipWindow, TooltipItem item, Gdk.ModifierType modifierState, int mouseX, int mouseY) { var location = editor.OffsetToLocation (item.Offset); var point = editor.LocationToPoint (location); int lineHeight = (int) editor.LineHeight; int y = (int)point.Y; // find the top of the line that the mouse is hovering over while (y + lineHeight < mouseY) y += lineHeight; var caret = new Gdk.Rectangle (mouseX, y, 1, lineHeight); tooltip = (DebugValueWindow)tipWindow; tooltip.ShowPopup (editor, caret, PopupPosition.TopLeft); }
public override Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Gdk.ModifierType modifierState) { return new DebugValueWindow (editor, offset, DebuggingService.CurrentFrame, (ObjectValue) item.Item, null); }
public override Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Gdk.ModifierType modifierState) { var doc = ctx; if (doc == null) return null; var titem = (ToolTipData)item.Item; var tooltipInformation = CreateTooltip (titem, editor, ctx, offset, modifierState); if (tooltipInformation == null || string.IsNullOrEmpty (tooltipInformation.SignatureMarkup)) return null; var result = new TooltipInformationWindow (); result.ShowArrow = true; result.AddOverload (tooltipInformation); result.RepositionWindow (); return result; }
public virtual void ShowTooltipWindow (TextEditor editor, Control tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { if (tipWindow == null) return; var tipInfoWindow = ((Gtk.Widget)tipWindow) as TooltipInformationWindow; if (tipInfoWindow != null) { ShowTipInfoWindow (editor, tipInfoWindow, item, modifierState, mouseX, mouseY); return; } var origin = editor.GetContent<ITextEditorImpl> ().GetEditorWindowOrigin (); int w; double xalign; GetRequiredPosition (editor, tipWindow, out w, out xalign); w += 10; var allocation = GetAllocation (editor); int x = (int)(mouseX + origin.X + allocation.X); int y = (int)(mouseY + origin.Y + allocation.Y); Gtk.Widget widget = editor; var geometry = widget.Screen.GetUsableMonitorGeometry (widget.Screen.GetMonitorAtPoint (x, y)); x -= (int) ((double) w * xalign); y += 10; if (x + w >= geometry.X + geometry.Width) x = geometry.X + geometry.Width - w; if (x < geometry.Left) x = geometry.Left; var gtkWindow = (Gtk.Window)tipWindow; int h = gtkWindow.SizeRequest ().Height; if (y + h >= geometry.Y + geometry.Height) y = geometry.Y + geometry.Height - h; if (y < geometry.Top) y = geometry.Top; gtkWindow.Move (x, y); gtkWindow.ShowAll (); }
void ShowTipInfoWindow (TextEditor editor, TooltipInformationWindow tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { Gtk.Widget editorWidget = editor; var startLoc = editor.OffsetToLocation (item.Offset); var endLoc = editor.OffsetToLocation (item.EndOffset); var p1 = editor.LocationToPoint (startLoc); var p2 = editor.LocationToPoint (endLoc); int w = (int)(p2.X - p1.X); var caret = new Gdk.Rectangle ( (int)p1.X, (int)p1.Y, (int)w, (int)editor.LineHeight ); tipWindow.ShowPopup (editorWidget, caret, PopupPosition.Top); }
public virtual Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Xwt.ModifierKeys modifierState) { return null; }
public virtual void ShowTooltipWindow(TextEditor editor, Window tipWindow, TooltipItem item, Xwt.ModifierKeys modifierState, int mouseX, int mouseY) { if (tipWindow == null) { return; } TooltipInformationWindow tipInfoWindow = (tipWindow as XwtWindowControl)?.Window as TooltipInformationWindow; if (tipInfoWindow != null) { ShowTipInfoWindow(editor, tipInfoWindow, item, modifierState, mouseX, mouseY); return; } var origin = editor.GetContent <ITextEditorImpl> ().GetEditorWindowOrigin(); int w; double xalign; GetRequiredPosition(editor, tipWindow, out w, out xalign); w += 10; var allocation = GetAllocation(editor); int x = (int)(mouseX + origin.X + allocation.X); int y = (int)(mouseY + origin.Y + allocation.Y); Gtk.Widget widget = editor; var geometry = widget.Screen.GetUsableMonitorGeometry(widget.Screen.GetMonitorAtPoint(x, y)); x -= (int)((double)w * xalign); y += 10; if (x + w >= geometry.X + geometry.Width) { x = geometry.X + geometry.Width - w; } if (x < geometry.Left) { x = geometry.Left; } var xwtWindow = (Xwt.WindowFrame)tipWindow; int h = (int)xwtWindow.Size.Height; if (y + h >= geometry.Y + geometry.Height) { y = geometry.Y + geometry.Height - h; } if (y < geometry.Top) { y = geometry.Top; } xwtWindow.Location = new Xwt.Point(x, y); var gtkWindow = Xwt.Toolkit.Load(Xwt.ToolkitType.Gtk).GetNativeWindow(xwtWindow) as Gtk.Window; if (gtkWindow != null) { gtkWindow.ShowAll(); } else { xwtWindow.Show(); } }
public override Control CreateTooltipWindow (TextEditor editor, DocumentContext ctx, TooltipItem item, int offset, Gdk.ModifierType modifierState) { var doc = ctx; if (doc == null) return null; var result = new TooltipInformationWindow (); result.ShowArrow = true; result.AddOverload ((TooltipInformation)item.Item); result.RepositionWindow (); return result; }