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

Loading…
Cancel
Save