Browse Source

Use TextFormattingMode=Display in whole SharpDevelop.

Add support for TextFormattingMode to AvalonEdit.AddIn.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5259 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Daniel Grunwald 17 years ago
parent
commit
8dd9b3229c
  1. 5
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj
  2. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs
  3. 43
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Wpf4TextView.cs
  4. 21
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs
  5. 1
      src/Main/Base/Project/Src/Gui/App.xaml
  6. 10
      src/Main/Base/Project/Src/Gui/Workbench/WpfWorkbench.cs
  7. 1
      src/Main/Base/Project/Src/Gui/Workbench/WpfWorkbench.xaml

5
src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj

@ -63,6 +63,7 @@ @@ -63,6 +63,7 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Src\Wpf4TextView.cs" />
<None Include="AvalonEdit.AddIn.addin">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
@ -76,9 +77,7 @@ @@ -76,9 +77,7 @@
<Compile Include="Src\BracketHighlightRenderer.cs" />
<Compile Include="Src\CodeEditor.cs" />
<Compile Include="Src\CodeEditorAdapter.cs" />
<Compile Include="Src\CodeEditorView.cs">
<DependentUpon>AvalonEditViewContent.cs</DependentUpon>
</Compile>
<Compile Include="Src\CodeEditorView.cs" />
<Compile Include="Src\Commands\FoldingCommands.cs" />
<Compile Include="Src\Commands\SortOptionsDialog.xaml.cs">
<DependentUpon>SortOptionsDialog.xaml</DependentUpon>

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs

@ -38,7 +38,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -38,7 +38,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
CodeEditorOptions options;
BracketHighlightRenderer bracketRenderer;
public CodeEditorView()
public CodeEditorView() : base(new Wpf4TextArea())
{
this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Help, OnHelpExecuted));
options = ICSharpCode.AvalonEdit.AddIn.Options.CodeEditorOptions.Instance;

43
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Wpf4TextView.cs

@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Daniel Grunwald"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.TextFormatting;
using ICSharpCode.AvalonEdit.Editing;
using ICSharpCode.AvalonEdit.Rendering;
namespace ICSharpCode.AvalonEdit.AddIn
{
/// <summary>
/// Adds WPF4 text clarity support to TextView.
/// </summary>
public class Wpf4TextView : TextView
{
protected override TextFormatter CreateTextFormatter()
{
return TextFormatter.Create(TextOptions.GetTextFormattingMode(this));
}
protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e)
{
base.OnPropertyChanged(e);
if (e.Property == TextOptions.TextFormattingModeProperty) {
RecreateTextFormatter();
}
}
}
public class Wpf4TextArea : TextArea
{
public Wpf4TextArea() : base(new Wpf4TextView())
{
}
}
}

21
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/TextView.cs

@ -119,6 +119,27 @@ namespace ICSharpCode.AvalonEdit.Rendering @@ -119,6 +119,27 @@ namespace ICSharpCode.AvalonEdit.Rendering
DocumentChanged(this, EventArgs.Empty);
}
/// <summary>
/// Recreates the text formatter that is used internally
/// by calling <see cref="CreateTextFormatter"/>.
/// </summary>
protected void RecreateTextFormatter()
{
if (formatter != null) {
formatter.Dispose();
formatter = CreateTextFormatter();
Redraw();
}
}
/// <summary>
/// Creates a new text formatter.
/// </summary>
protected virtual TextFormatter CreateTextFormatter()
{
return TextFormatter.Create();
}
/// <inheritdoc cref="IWeakEventListener.ReceiveWeakEvent"/>
protected virtual bool ReceiveWeakEvent(Type managerType, object sender, EventArgs e)
{

1
src/Main/Base/Project/Src/Gui/App.xaml

@ -15,6 +15,7 @@ @@ -15,6 +15,7 @@
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
<Setter Property="ShowInTaskbar" Value="False" />
<Setter Property="UseLayoutRounding" Value="True" />
<Setter Property="TextOptions.TextFormattingMode" Value="Display" />
</Style>
</Application.Resources>
</Application>

10
src/Main/Base/Project/Src/Gui/Workbench/WpfWorkbench.cs

@ -17,6 +17,7 @@ using System.Windows.Controls; @@ -17,6 +17,7 @@ using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Interop;
using System.Windows.Media;
using System.Windows.Navigation;
using ICSharpCode.Core;
@ -653,6 +654,15 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -653,6 +654,15 @@ namespace ICSharpCode.SharpDevelop.Gui
((AvalonDockLayout)workbenchLayout).WriteState(output);
LoggingService.Debug(output.ToString());
}
if (!e.Handled && e.Key == Key.L && e.KeyboardDevice.Modifiers == (ModifierKeys.Control | ModifierKeys.Shift | ModifierKeys.Alt)) {
this.UseLayoutRounding = !this.UseLayoutRounding;
}
if (!e.Handled && e.Key == Key.F && e.KeyboardDevice.Modifiers == (ModifierKeys.Control | ModifierKeys.Shift | ModifierKeys.Alt)) {
if (TextOptions.GetTextFormattingMode(this) == TextFormattingMode.Display)
TextOptions.SetTextFormattingMode(this, TextFormattingMode.Ideal);
else
TextOptions.SetTextFormattingMode(this, TextFormattingMode.Display);
}
}
static string GetElementName(object element)

1
src/Main/Base/Project/Src/Gui/Workbench/WpfWorkbench.xaml

@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
Background = "{DynamicResource {x:Static SystemColors.ControlBrushKey}}"
AllowDrop = "True"
UseLayoutRounding = "True"
TextOptions.TextFormattingMode = "Display"
>
<DockPanel Name="dockPanel">
<Menu Name="mainMenu" DockPanel.Dock="Top"/>

Loading…
Cancel
Save