public LoggingTagger(ITextView view, ITextBuffer sourceBuffer, ITextSearchService textSearchService, ITextStructureNavigator textStructureNavigator, IToolTipProviderFactory toolTipProviderFactory) { _sourceBuffer = sourceBuffer; _view = view; _textSearchService = textSearchService; _textStructureNavigator = textStructureNavigator; // Subscribe to both change events in the view - any time the view is updated // or the caret is moved, we refresh our list of highlighted words. _view.Caret.PositionChanged += CaretPositionChanged; _view.LayoutChanged += ViewLayoutChanged; _toolTipProvider = toolTipProviderFactory.GetToolTipProvider(_view); if (_view == ToolWindow1Control.CurrentTextViewer) { UpdateAtCaretPosition(_view.Caret.ContainingTextViewLine); } // TODO: syncronized access. if (LoggingTaggerCollection == null) { LoggingTaggerCollection = new Dictionary <ITextView, LoggingTagger>(); } if (!LoggingTaggerCollection.ContainsKey(view)) { LoggingTaggerCollection.Add(view, this); } else { LoggingTaggerCollection[view] = this; } }
public ErrorGlyphMouseProcessor(IWpfTextViewHost textViewHost, IWpfTextViewMargin textViewMargin, ITagAggregator <ErrorGlyphTag> tagAggregator, IToolTipProvider toolTipProvider) { _textViewHost = textViewHost; _textViewMargin = textViewMargin; _tagAggregator = tagAggregator; _toolTipProvider = toolTipProvider; }
public IMouseProcessor GetAssociatedMouseProcessor(IWpfTextViewHost wpfTextViewHost, IWpfTextViewMargin margin) { ITagAggregator <ErrorGlyphTag> tagAggregator = AggregatorService.CreateTagAggregator <ErrorGlyphTag>(wpfTextViewHost.TextView.TextBuffer); IToolTipProvider tooltipProvider = ToolTipProviderFactory.GetToolTipProvider(wpfTextViewHost.TextView); return(new ErrorGlyphMouseProcessor(wpfTextViewHost, margin, tagAggregator, tooltipProvider)); }
string IToolTipProvider.GetToolTip(TreeNodeAdv node, NodeControl nodeControl) { if (nodeControl is IToolTipProvider) { IToolTipProvider controlProvider = nodeControl as IToolTipProvider; return(controlProvider.GetToolTip(node, nodeControl)); } return(null); }
public ImagePreviewToolTipMouseProcessor(IWpfTextView view, ITextStructureNavigator navigator, IToolTipProviderFactory toolTipProviderFactory, ITextDocument textDocument) { this.spanSearcher = new StringSpanSearcher(view, navigator); this.toolTipProvider = toolTipProviderFactory.GetToolTipProvider(view); this.textDocument = textDocument; this.shownSpan = null; }
public string GetToolTip() { IToolTipProvider toolTipProvider = this.Parent as IToolTipProvider; if (toolTipProvider != null) { return(toolTipProvider.GetToolTip()); } return(string.Empty); }
/// <summary> /// Create a new instance of <seealso cref="StackdriverTagger"/> class. /// </summary> /// <param name="view">The text view on which the tag shows.</param> /// <param name="sourceBuffer">The source buffer with the text view.</param> /// <param name="toolTipProviderFactory">The tool tip provider. <seealso cref="IToolTipProviderFactory"/>. </param> public StackdriverTagger(ITextView view, ITextBuffer sourceBuffer, IToolTipProviderFactory toolTipProviderFactory) { _sourceBuffer = sourceBuffer; _view = view; _view.LayoutChanged += OnViewLayoutChanged; _view.LostAggregateFocus += OnLostAggregateFocus; _toolTipProvider = toolTipProviderFactory.GetToolTipProvider(_view); if (_view == ActiveTagData.Current?.TextView) { ShowOrUpdateToolTip(); } }
internal CustomTooltipMouseProcessor(IWpfTextView view, IToolTipProviderFactory toolTipProviderFactory, ITextStructureNavigator navigatorService, IClassifier classifier) { this._view = view; this._toolTipProvider = toolTipProviderFactory.GetToolTipProvider(this._view); this._navigatorService = navigatorService; this._classifier = classifier; this._systemFonts = Fonts.SystemFontFamilies; this.IsToolTipShown = false; }
public override void PreprocessMouseMove(MouseEventArgs e) { // Look for regex lines to show the tooltip/hand cursor foreach (ITextViewLine line in this.view.TextViewLines) { RegexLineData regexLineData = RegexLineData.CreateFromTextViewLine(this.view, line); // Check if the regex line contains a new Regex statement if (IsValid(regexLineData)) { // Get the pattern parameter SnapshotSpan?expression = regexLineData.Expression; if (expression.HasValue) { // Get the marker geometry of the pattern parameter Geometry expressionGeometry = view.TextViewLines.GetMarkerGeometry(expression.Value); if (expressionGeometry != null && expressionGeometry.Bounds.Contains(GetPointRelativeToView(e))) { e.Handled = true; if (!IsToolTipShown) { IsToolTipShown = true; IToolTipProvider toolTipProvider = this.toolTipProviderFactory.GetToolTipProvider(this.view); // Show the tooltip toolTipProvider.ShowToolTip(expression.Value.Snapshot.CreateTrackingSpan( expression.Value.Span, SpanTrackingMode.EdgeExclusive), "Ctrl+Click to open the regex editor", PopupStyles.DismissOnMouseLeaveText); } // If the ctrl key is pressed change the cursor to hand if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)) { e.MouseDevice.OverrideCursor = Cursors.Hand; } return; } } } } IsToolTipShown = false; e.MouseDevice.OverrideCursor = null; }