void DestroyPreviewWindow() { if (previewWindow != null) { previewWindow.Destroy(); previewWindow = null; } }
void DestroyPreviewWindow () { if (previewWindow != null) { previewWindow.Destroy (); previewWindow = null; } }
void ShowTooltip (TextSegment segment, Rectangle hintRectangle) { if (previewWindow != null && previewWindow.Segment == segment) return; CancelCodeSegmentTooltip (); HideCodeSegmentPreviewWindow (); if (segment.IsInvalid || segment.Length == 0) return; codeSegmentTooltipTimeoutId = GLib.Timeout.Add (650, delegate { previewWindow = new CodeSegmentPreviewWindow (textEditor, false, segment); if (previewWindow.IsEmptyText) { previewWindow.Destroy (); previewWindow = null; return false; } int ox = 0, oy = 0; this.textEditor.GdkWindow.GetOrigin (out ox, out oy); ox += textEditor.Allocation.X; oy += textEditor.Allocation.Y; int x = hintRectangle.Right; int y = hintRectangle.Bottom; previewWindow.CalculateSize (); var req = previewWindow.SizeRequest (); int w = req.Width; int h = req.Height; var geometry = this.textEditor.Screen.GetUsableMonitorGeometry (this.textEditor.Screen.GetMonitorAtPoint (ox + x, oy + y)); if (x + ox + w > geometry.X + geometry.Width) x = hintRectangle.Left - w; if (y + oy + h > geometry.Y + geometry.Height) y = hintRectangle.Top - h; int destX = System.Math.Max (0, ox + x); int destY = System.Math.Max (0, oy + y); previewWindow.Move (destX, destY); previewWindow.ShowAll (); return false; }); }
public void HideCodeSegmentPreviewWindow () { if (previewWindow != null) { previewWindow.Destroy (); previewWindow = null; } }
void ShowTooltip (ISegment segment, Rectangle hintRectangle) { if (previewSegment == segment) return; CancelCodeSegmentTooltip (); HideCodeSegmentPreviewWindow (); previewSegment = segment; if (segment == null) return; codeSegmentTooltipTimeoutId = GLib.Timeout.Add (650, delegate { previewWindow = new CodeSegmentPreviewWindow (this.textEditor, false, segment); int ox = 0, oy = 0; this.textEditor.GdkWindow.GetOrigin (out ox, out oy); int x = hintRectangle.Right; int y = hintRectangle.Bottom; previewWindow.CalculateSize (); int w = previewWindow.SizeRequest ().Width; int h = previewWindow.SizeRequest ().Height; Gdk.Rectangle geometry = this.textEditor.Screen.GetMonitorGeometry (this.textEditor.Screen.GetMonitorAtPoint (ox + x, oy + y)); if (x + ox + w > geometry.Right) x = hintRectangle.Left - w; if (y + oy + h > geometry.Bottom) y = hintRectangle.Top - h; int destX = System.Math.Max (0, ox + x); int destY = System.Math.Max (0, oy + y); previewWindow.Move (destX, destY); previewWindow.ShowAll (); return false; }); }