public GlyphMargin( IWpfTextViewHost wpfTextViewHost, IGlyphFactory <TGlyphTag> glyphFactory, Func <Grid> gridFactory, ITagAggregator <TGlyphTag> tagAggregator, IEditorFormatMap editorFormatMap, Func <ITextBuffer, bool> isMarginVisible, string marginPropertiesName, string marginName, bool handleZoom = true, double marginWidth = 17.0) { textView = wpfTextViewHost.TextView; this.tagAggregator = tagAggregator; this.isMarginVisible = isMarginVisible; this.marginName = marginName; this.handleZoom = handleZoom; this.marginWidth = marginWidth; marginVisual = gridFactory(); marginVisual.Width = marginWidth; visualManager = new GlyphMarginVisualManager <TGlyphTag>(textView, glyphFactory, marginVisual, this, editorFormatMap, marginPropertiesName); // Do on Loaded to give diff view a chance to initialize. marginVisual.Loaded += OnLoaded; }
public GlyphMargin( IWpfTextView textView, IGlyphFactory <TGlyphTag> glyphFactory, Grid marginGrid, IViewTagAggregatorFactoryService tagAggregatorFactory, IEditorFormatMap editorFormatMap, string marginPropertiesName) { this.textView = textView; this.marginGrid = marginGrid; this.tagAggregatorFactory = tagAggregatorFactory; visualManager = new GlyphMarginVisualManager <TGlyphTag>(textView, glyphFactory, marginGrid, editorFormatMap, marginPropertiesName); // Initialize when first visible visibleSubscription = marginGrid.WhenAnyValue(x => x.IsVisible).Distinct().Where(x => x).Subscribe(_ => Initialize()); }