Browse Source

Implemented CodeEditor.ActiveTextEditor.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5204 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 16 years ago
parent
commit
05df040a28
  1. 24
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs

24
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs

@ -48,6 +48,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
readonly CodeEditorView primaryTextEditor; readonly CodeEditorView primaryTextEditor;
readonly CodeEditorAdapter primaryTextEditorAdapter; readonly CodeEditorAdapter primaryTextEditorAdapter;
CodeEditorView secondaryTextEditor; CodeEditorView secondaryTextEditor;
CodeEditorView activeTextEditor;
CodeEditorAdapter secondaryTextEditorAdapter; CodeEditorAdapter secondaryTextEditorAdapter;
GridSplitter gridSplitter; GridSplitter gridSplitter;
readonly IconBarManager iconBarManager; readonly IconBarManager iconBarManager;
@ -62,7 +63,13 @@ namespace ICSharpCode.AvalonEdit.AddIn
} }
public CodeEditorView ActiveTextEditor { public CodeEditorView ActiveTextEditor {
get { return primaryTextEditor; } get { return activeTextEditor; }
private set {
if (activeTextEditor != value) {
activeTextEditor = value;
HandleCaretPositionChange();
}
}
} }
TextDocument document; TextDocument document;
@ -143,6 +150,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
primaryTextEditor = CreateTextEditor(); primaryTextEditor = CreateTextEditor();
primaryTextEditorAdapter = (CodeEditorAdapter)primaryTextEditor.TextArea.GetService(typeof(ITextEditor)); primaryTextEditorAdapter = (CodeEditorAdapter)primaryTextEditor.TextArea.GetService(typeof(ITextEditor));
Debug.Assert(primaryTextEditorAdapter != null); Debug.Assert(primaryTextEditorAdapter != null);
activeTextEditor = primaryTextEditor;
this.primaryBracketRenderer = new BracketHighlightRenderer(primaryTextEditor.TextArea.TextView); this.primaryBracketRenderer = new BracketHighlightRenderer(primaryTextEditor.TextArea.TextView);
@ -185,6 +193,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
textEditor.TextArea.MouseRightButtonDown += TextAreaMouseRightButtonDown; textEditor.TextArea.MouseRightButtonDown += TextAreaMouseRightButtonDown;
textEditor.TextArea.ContextMenuOpening += TextAreaContextMenuOpening; textEditor.TextArea.ContextMenuOpening += TextAreaContextMenuOpening;
textEditor.TextArea.TextCopied += textEditor_TextArea_TextCopied; textEditor.TextArea.TextCopied += textEditor_TextArea_TextCopied;
textEditor.GotFocus += textEditor_GotFocus;
return textEditor; return textEditor;
} }
@ -203,6 +212,12 @@ namespace ICSharpCode.AvalonEdit.AddIn
textEditor.TextArea.LeftMargins.OfType<IconBarMargin>().Single().TextView = null; textEditor.TextArea.LeftMargins.OfType<IconBarMargin>().Single().TextView = null;
} }
void textEditor_GotFocus(object sender, RoutedEventArgs e)
{
Debug.Assert(sender is CodeEditorView);
this.ActiveTextEditor = (CodeEditorView)sender;
}
void TextAreaContextMenuOpening(object sender, ContextMenuEventArgs e) void TextAreaContextMenuOpening(object sender, ContextMenuEventArgs e)
{ {
ITextEditor adapter = GetAdapterFromSender(sender); ITextEditor adapter = GetAdapterFromSender(sender);
@ -243,9 +258,9 @@ namespace ICSharpCode.AvalonEdit.AddIn
new Binding(TextEditor.DocumentProperty.Name) { Source = primaryTextEditor }); new Binding(TextEditor.DocumentProperty.Name) { Source = primaryTextEditor });
secondaryTextEditor.SyntaxHighlighting = primaryTextEditor.SyntaxHighlighting; secondaryTextEditor.SyntaxHighlighting = primaryTextEditor.SyntaxHighlighting;
gridSplitter = new GridSplitter { gridSplitter = new GridSplitter {
Height = 4, Height = 4,
HorizontalAlignment = HorizontalAlignment.Stretch, HorizontalAlignment = HorizontalAlignment.Stretch,
VerticalAlignment = VerticalAlignment.Top VerticalAlignment = VerticalAlignment.Top
}; };
SetRow(gridSplitter, 2); SetRow(gridSplitter, 2);
@ -270,6 +285,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
gridSplitter = null; gridSplitter = null;
this.secondaryBracketRenderer = null; this.secondaryBracketRenderer = null;
this.RowDefinitions.RemoveAt(this.RowDefinitions.Count - 1); this.RowDefinitions.RemoveAt(this.RowDefinitions.Count - 1);
this.ActiveTextEditor = primaryTextEditor;
} }
} }

Loading…
Cancel
Save