1
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
2
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
4
using System.Collections.ObjectModel;
5
using System.Diagnostics;
7
using System.Windows.Input;
9
namespace ICSharpCode.WpfDesign.Designer.Services
11
class DesignerKeyBindings : IKeyBindingService
13
private readonly DesignSurface _surface;
14
private Collection<KeyBinding> _bindings;
16
public DesignerKeyBindings(DesignSurface surface)
18
Debug.Assert(surface != null);
19
this._surface = surface;
20
_bindings = new Collection<KeyBinding>();
23
public void RegisterBinding(KeyBinding binding)
26
_surface.InputBindings.Add(binding);
27
_bindings.Add(binding);
31
public void DeregisterBinding(KeyBinding binding)
33
if(_bindings.Contains(binding)) {
34
_surface.InputBindings.Remove(binding);
35
_bindings.Remove(binding);
39
public KeyBinding GetBinding(KeyGesture gesture)
41
return _bindings.FirstOrDefault(binding => binding.Key == gesture.Key && binding.Modifiers == gesture.Modifiers);
45
get { return _surface; }