Inheritance: IWpfTextViewMarginProvider
        /// <summary>
        /// Factory for the ChangeTrackingMargin.
        /// </summary>
        public static OverviewChangeTrackingMargin Create(IWpfTextViewHost textViewHost, IVerticalScrollBar scrollBar, OverviewChangeTrackingMarginProvider provider)
        {
            // Validate
            if (textViewHost == null)
                throw new ArgumentNullException("textViewHost");

            return new OverviewChangeTrackingMargin(textViewHost, scrollBar, provider);
        }
        /// <summary>
        /// Constructor for the ChangeTrackingMarginElement.
        /// </summary>
        /// <param name="textView">ITextView to which this ChangeTrackingMargenElement will be attached.</param>
        /// <param name="verticalScrollbar">Vertical scrollbar of the ITextViewHost that contains <paramref name="textView"/>.</param>
        public ChangeTrackingMarginElement(IWpfTextView textView, IVerticalScrollBar verticalScrollbar, OverviewChangeTrackingMarginProvider provider)
        {
            provider.LoadOption(textView.Options, DefaultOverviewMarginOptions.ChangeTrackingMarginId.Name);
            provider.LoadOption(textView.Options, ChangeTrackingMarginWidthId.Name);

            _textView  = textView;
            _scrollBar = verticalScrollbar;
            _tagAggregatorFactoryService = provider.TagAggregatorFactoryService;
            _editorFormatMap             = provider.EditorFormatMapService.GetEditorFormatMap(textView);

            _editorFormatMap.FormatMappingChanged += OnFormatMappingChanged;

            _textView.Closed += (sender, args) => _editorFormatMap.FormatMappingChanged -= OnFormatMappingChanged;

            UpdateBrushes();

            //Make our width big enough to see, but not so big that it consumes a lot of
            //real-estate.
            this.Width = _textView.Options.GetOptionValue(ChangeTrackingMarginWidthId);

            this.OnOptionsChanged(null, null);
            textView.Options.OptionChanged += this.OnOptionsChanged;

            this.IsVisibleChanged += delegate(object sender, DependencyPropertyChangedEventArgs e)
            {
                if ((bool)e.NewValue)
                {
                    //Hook up to the various events we need to keep the changeTracking margin current.
                    _textView.LayoutChanged     += OnLayoutChanged;
                    _scrollBar.TrackSpanChanged += OnTrackSpanChanged;

                    this.InvalidateVisual();
                }
                else
                {
                    _textView.LayoutChanged     -= OnLayoutChanged;
                    _scrollBar.TrackSpanChanged -= OnTrackSpanChanged;
                }
            };
        }
Beispiel #3
0
        /// <summary>
        /// Factory for the ChangeTrackingMargin.
        /// </summary>
        public static OverviewChangeTrackingMargin Create(IWpfTextViewHost textViewHost, IVerticalScrollBar scrollBar, OverviewChangeTrackingMarginProvider provider)
        {
            // Validate
            if (textViewHost == null)
            {
                throw new ArgumentNullException("textViewHost");
            }

            return(new OverviewChangeTrackingMargin(textViewHost, scrollBar, provider));
        }
 /// <summary>
 /// Constructor for the OverviewChangeTrackingMargin.
 /// </summary>
 private OverviewChangeTrackingMargin(IWpfTextViewHost textViewHost, IVerticalScrollBar scrollBar, OverviewChangeTrackingMarginProvider provider)
 {
     _changeTrackingMarginElement = new ChangeTrackingMarginElement(textViewHost.TextView, scrollBar, provider);
 }
Beispiel #5
0
 /// <summary>
 /// Constructor for the OverviewChangeTrackingMargin.
 /// </summary>
 private OverviewChangeTrackingMargin(IWpfTextViewHost textViewHost, IVerticalScrollBar scrollBar, OverviewChangeTrackingMarginProvider provider)
 {
     _changeTrackingMarginElement = new ChangeTrackingMarginElement(textViewHost.TextView, scrollBar, provider);
 }