Browse Source

remove search commands from the TextAreaDefaultInputHandlers; register SearchInputHandler manually -> we don't want Ctrl+F in every AE instance (e.g. Condition-Field in BreakpointsPad)

pull/23/head
Siegfried Pammer 14 years ago
parent
commit
713e43efc7
  1. 3
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditor.cs
  2. 27
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/TextAreaDefaultInputHandlers.cs
  3. 40
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Search/SearchCommands.cs

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

@ -13,12 +13,12 @@ using System.Windows.Controls; @@ -13,12 +13,12 @@ using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Input;
using System.Windows.Threading;
using ICSharpCode.AvalonEdit.AddIn.Options;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Editing;
using ICSharpCode.AvalonEdit.Highlighting;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.AvalonEdit.Search;
using ICSharpCode.AvalonEdit.Utils;
using ICSharpCode.Core;
using ICSharpCode.Core.Presentation;
@ -206,6 +206,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -206,6 +206,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
codeEditorView.TextArea.Caret.PositionChanged += TextAreaCaretPositionChanged;
codeEditorView.TextArea.DefaultInputHandler.CommandBindings.Add(
new CommandBinding(CustomCommands.CtrlSpaceCompletion, OnCodeCompletion));
codeEditorView.TextArea.DefaultInputHandler.NestedInputHandlers.Add(new SearchInputHandler(codeEditorView.TextArea));
textView.BackgroundRenderers.Add(textMarkerService);
textView.LineTransformers.Add(textMarkerService);

27
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/TextAreaDefaultInputHandlers.cs

@ -7,7 +7,6 @@ using System.Windows; @@ -7,7 +7,6 @@ using System.Windows;
using System.Windows.Input;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Search;
namespace ICSharpCode.AvalonEdit.Editing
{
@ -42,9 +41,6 @@ namespace ICSharpCode.AvalonEdit.Editing @@ -42,9 +41,6 @@ namespace ICSharpCode.AvalonEdit.Editing
this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Undo, ExecuteUndo, CanExecuteUndo));
this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Redo, ExecuteRedo, CanExecuteRedo));
this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Find, ExecuteFind));
this.CommandBindings.Add(new CommandBinding(SearchCommands.FindNext, ExecuteFindNext));
this.CommandBindings.Add(new CommandBinding(SearchCommands.FindPrevious, ExecuteFindPrevious));
}
internal static KeyBinding CreateFrozenKeyBinding(ICommand command, ModifierKeys modifiers, Key key)
@ -110,28 +106,5 @@ namespace ICSharpCode.AvalonEdit.Editing @@ -110,28 +106,5 @@ namespace ICSharpCode.AvalonEdit.Editing
}
}
#endregion
void ExecuteFind(object sender, ExecutedRoutedEventArgs e)
{
var panel = TextArea.TextView.Layers.OfType<SearchPanel>().FirstOrDefault();
if (panel == null)
new SearchPanel(TextArea);
else
panel.Reactivate();
}
void ExecuteFindNext(object sender, ExecutedRoutedEventArgs e)
{
var panel = TextArea.TextView.Layers.OfType<SearchPanel>().FirstOrDefault();
if (panel != null)
panel.FindNext();
}
void ExecuteFindPrevious(object sender, ExecutedRoutedEventArgs e)
{
var panel = TextArea.TextView.Layers.OfType<SearchPanel>().FirstOrDefault();
if (panel != null)
panel.FindPrevious();
}
}
}

40
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Search/SearchCommands.cs

@ -35,4 +35,44 @@ namespace ICSharpCode.AvalonEdit.Search @@ -35,4 +35,44 @@ namespace ICSharpCode.AvalonEdit.Search
new InputGestureCollection { new KeyGesture(Key.F3, ModifierKeys.Shift) }
);
}
/// <summary>
/// TextAreaInputHandler that registers all search-related commands.
/// </summary>
public class SearchInputHandler : TextAreaInputHandler
{
/// <summary>
/// Creates a new SearchInputHandler and registers the search-related commands.
/// </summary>
public SearchInputHandler(TextArea textArea)
: base(textArea)
{
this.CommandBindings.Add(new CommandBinding(ApplicationCommands.Find, ExecuteFind));
this.CommandBindings.Add(new CommandBinding(SearchCommands.FindNext, ExecuteFindNext));
this.CommandBindings.Add(new CommandBinding(SearchCommands.FindPrevious, ExecuteFindPrevious));
}
void ExecuteFind(object sender, ExecutedRoutedEventArgs e)
{
var panel = TextArea.TextView.Layers.OfType<SearchPanel>().FirstOrDefault();
if (panel == null)
new SearchPanel(TextArea);
else
panel.Reactivate();
}
void ExecuteFindNext(object sender, ExecutedRoutedEventArgs e)
{
var panel = TextArea.TextView.Layers.OfType<SearchPanel>().FirstOrDefault();
if (panel != null)
panel.FindNext();
}
void ExecuteFindPrevious(object sender, ExecutedRoutedEventArgs e)
{
var panel = TextArea.TextView.Layers.OfType<SearchPanel>().FirstOrDefault();
if (panel != null)
panel.FindPrevious();
}
}
}

Loading…
Cancel
Save