diff --git a/SharpDevelop.sln b/SharpDevelop.sln index b43590eee0..b539ecb077 100644 --- a/SharpDevelop.sln +++ b/SharpDevelop.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 -# SharpDevelop 4.3.0.8816-alpha +# SharpDevelop 4.2.0.8783 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{256F5C28-532C-44C0-8AB8-D8EC5E492E01}" ProjectSection(SolutionItems) = postProject EndProjectSection diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj index bbaefabe28..a57f66e918 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj @@ -76,7 +76,6 @@ - diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs index 3725757dd7..0efb20a497 100755 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs @@ -47,7 +47,6 @@ namespace ICSharpCode.AvalonEdit.AddIn CaretReferencesRenderer caretReferencesRenderer; ContextActionsRenderer contextActionsRenderer; HiddenDefinition.HiddenDefinitionRenderer hiddenDefinitionRenderer; - ColumnRulerRenderer columnRulerRenderer; public CodeEditorView() { @@ -57,8 +56,6 @@ namespace ICSharpCode.AvalonEdit.AddIn this.caretReferencesRenderer = new CaretReferencesRenderer(this); this.contextActionsRenderer = new ContextActionsRenderer(this); this.hiddenDefinitionRenderer = new HiddenDefinition.HiddenDefinitionRenderer(this); - this.columnRulerRenderer = new ColumnRulerRenderer(this.TextArea.TextView); - this.columnRulerRenderer.SetRuler(CodeEditorOptions.Instance.ColumnRulerPosition, ColumnRulerBrush); UpdateCustomizedHighlighting(); @@ -103,13 +100,6 @@ namespace ICSharpCode.AvalonEdit.AddIn if (this.caretReferencesRenderer != null) this.caretReferencesRenderer.ClearHighlight(); break; - case "ShowColumnRuler": - case "ColumRulerPosition": - if (CodeEditorOptions.Instance.ShowColumnRuler) - columnRulerRenderer.SetRuler(CodeEditorOptions.Instance.ColumnRulerPosition, ColumnRulerBrush); - else - columnRulerRenderer.SetRuler(-1, ColumnRulerBrush); - break; } } @@ -603,20 +593,5 @@ namespace ICSharpCode.AvalonEdit.AddIn { return CustomizedHighlightingColor.FetchCustomizations(languageName); } - - public static readonly DependencyProperty ColumnRulerBrushProperty = - DependencyProperty.Register("ColumnRulerBrush", typeof(Brush), typeof(CodeEditorView), - new FrameworkPropertyMetadata(Brushes.LightGray, OnUpdateBrushes)); - - public Brush ColumnRulerBrush { - get { return (Brush)GetValue(ColumnRulerBrushProperty); } - set { SetValue(ColumnRulerBrushProperty, value); } - } - - static void OnUpdateBrushes(DependencyObject d, DependencyPropertyChangedEventArgs e) - { - if (e.Property.Name == ColumnRulerBrushProperty.Name) - ((CodeEditorView)d).columnRulerRenderer.SetRuler(CodeEditorOptions.Instance.ColumnRulerPosition, (Brush)e.NewValue); - } } } diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/CodeEditorOptions.cs b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/CodeEditorOptions.cs index 7b734a576c..547217bb2d 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/CodeEditorOptions.cs +++ b/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/CodeEditorOptions.cs @@ -66,38 +66,6 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options } } - bool showColumnRuler = false; - - /// - /// Gets/Sets whether the column ruler should be shown. - /// - [DefaultValue(false)] - public virtual bool ShowColumnRuler { - get { return showColumnRuler; } - set { - if (showColumnRuler != value) { - showColumnRuler = value; - OnPropertyChanged("ShowColumnRuler"); - } - } - } - - int columnRulerPosition = 80; - - /// - /// Gets/Sets where the column ruler should be shown. - /// - [DefaultValue(80)] - public virtual int ColumnRulerPosition { - get { return columnRulerPosition; } - set { - if (columnRulerPosition != value) { - columnRulerPosition = value; - OnPropertyChanged("ColumnRulerPosition"); - } - } - } - bool enableChangeMarkerMargin = true; [DefaultValue(true)] diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/ICSharpCode.AvalonEdit.csproj b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/ICSharpCode.AvalonEdit.csproj index 2f2414acf4..b6b1bc0b21 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/ICSharpCode.AvalonEdit.csproj +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/ICSharpCode.AvalonEdit.csproj @@ -233,6 +233,7 @@ IVisualLineTransformer.cs + IVisualLineTransformer.cs diff --git a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ColumnRulerRenderer.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/ColumnRulerRenderer.cs similarity index 97% rename from src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ColumnRulerRenderer.cs rename to src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/ColumnRulerRenderer.cs index c1bbed66c6..522e45a23a 100644 --- a/src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ColumnRulerRenderer.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/ColumnRulerRenderer.cs @@ -7,7 +7,7 @@ using System.Windows.Media; using ICSharpCode.AvalonEdit.Rendering; using ICSharpCode.AvalonEdit.Utils; -namespace ICSharpCode.AvalonEdit.AddIn +namespace ICSharpCode.AvalonEdit { /// /// Redners a ruler at a certain colum diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs index c689f0a67d..ddf8f19dc1 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs @@ -40,6 +40,8 @@ namespace ICSharpCode.AvalonEdit.Rendering FocusableProperty.OverrideMetadata(typeof(TextView), new FrameworkPropertyMetadata(Boxes.False)); } + ColumnRulerRenderer columnRulerRenderer; + /// /// Creates a new TextView instance. /// @@ -59,6 +61,8 @@ namespace ICSharpCode.AvalonEdit.Rendering this.hoverLogic = new MouseHoverLogic(this); this.hoverLogic.MouseHover += (sender, e) => RaiseHoverEventPair(e, PreviewMouseHoverEvent, MouseHoverEvent); this.hoverLogic.MouseHoverStopped += (sender, e) => RaiseHoverEventPair(e, PreviewMouseHoverStoppedEvent, MouseHoverStoppedEvent); + this.columnRulerRenderer = new ColumnRulerRenderer(this); + this.columnRulerRenderer.SetRuler(Options.ColumnRulerPosition, ColumnRulerBrush); } #endregion @@ -198,6 +202,14 @@ namespace ICSharpCode.AvalonEdit.Rendering if (OptionChanged != null) { OptionChanged(this, e); } + + if (e.PropertyName == "ColumRulerPosition" || e.PropertyName == "ShowColumnRuler") { + if (Options.ShowColumnRuler) + columnRulerRenderer.SetRuler(Options.ColumnRulerPosition, ColumnRulerBrush); + else + columnRulerRenderer.SetRuler(-1, ColumnRulerBrush); + } + UpdateBuiltinElementGeneratorsFromOptions(); Redraw(); } @@ -1928,5 +1940,23 @@ namespace ICSharpCode.AvalonEdit.Rendering Redraw(); } } + + public static readonly DependencyProperty ColumnRulerBrushProperty = + DependencyProperty.Register("ColumnRulerBrush", typeof(Brush), typeof(TextView), + new FrameworkPropertyMetadata(Brushes.LightGray, OnUpdateBrushes)); + + public Brush ColumnRulerBrush { + get { return (Brush)GetValue(ColumnRulerBrushProperty); } + set { SetValue(ColumnRulerBrushProperty, value); } + } + + public static void OnUpdateBrushes(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + TextView view = d as TextView; + if (view == null) return; + if (e.Property == ColumnRulerBrushProperty) + view.columnRulerRenderer.SetRuler(view.Options.ColumnRulerPosition, (Brush)e.NewValue); + } + } } diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextEditorOptions.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextEditorOptions.cs index 897fcbcf45..4d2841d2e9 100644 --- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextEditorOptions.cs +++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextEditorOptions.cs @@ -398,5 +398,37 @@ namespace ICSharpCode.AvalonEdit } } } + + bool showColumnRuler = false; + + /// + /// Gets/Sets whether the column ruler should be shown. + /// + [DefaultValue(false)] + public virtual bool ShowColumnRuler { + get { return showColumnRuler; } + set { + if (showColumnRuler != value) { + showColumnRuler = value; + OnPropertyChanged("ShowColumnRuler"); + } + } + } + + int columnRulerPosition = 80; + + /// + /// Gets/Sets where the column ruler should be shown. + /// + [DefaultValue(80)] + public virtual int ColumnRulerPosition { + get { return columnRulerPosition; } + set { + if (columnRulerPosition != value) { + columnRulerPosition = value; + OnPropertyChanged("ColumnRulerPosition"); + } + } + } } }