1 | using System;
|
---|
2 | using System.Collections.Generic;
|
---|
3 | using System.Linq;
|
---|
4 | using System.Text;
|
---|
5 | using System.Windows.Input;
|
---|
6 | using System.Windows;
|
---|
7 |
|
---|
8 | namespace Microsoft.Research.DynamicDataDisplay.Navigation
|
---|
9 | {
|
---|
10 | // todo проверить, как происходит работа когда мышь не над плоттером, а над его ребенком
|
---|
11 | // todo если все ОК, то перевести все маус навигейшн контролы на этот класс как базовый
|
---|
12 | public abstract class MouseNavigationBase : NavigationBase
|
---|
13 | {
|
---|
14 | protected override void OnPlotterAttached(Plotter plotter)
|
---|
15 | {
|
---|
16 | base.OnPlotterAttached(plotter);
|
---|
17 |
|
---|
18 | Mouse.AddMouseDownHandler(Parent, OnMouseDown);
|
---|
19 | Mouse.AddMouseMoveHandler(Parent, OnMouseMove);
|
---|
20 | Mouse.AddMouseUpHandler(Parent, OnMouseUp);
|
---|
21 | Mouse.AddMouseWheelHandler(Parent, OnMouseWheel);
|
---|
22 | }
|
---|
23 |
|
---|
24 | protected override void OnPlotterDetaching(Plotter plotter)
|
---|
25 | {
|
---|
26 | Mouse.RemoveMouseDownHandler(Parent, OnMouseDown);
|
---|
27 | Mouse.RemoveMouseMoveHandler(Parent, OnMouseMove);
|
---|
28 | Mouse.RemoveMouseUpHandler(Parent, OnMouseUp);
|
---|
29 | Mouse.RemoveMouseWheelHandler(Parent, OnMouseWheel);
|
---|
30 |
|
---|
31 | base.OnPlotterDetaching(plotter);
|
---|
32 | }
|
---|
33 |
|
---|
34 | private void OnMouseWheel(object sender, MouseWheelEventArgs e)
|
---|
35 | {
|
---|
36 | OnPlotterMouseWheel(e);
|
---|
37 | }
|
---|
38 |
|
---|
39 | protected virtual void OnPlotterMouseWheel(MouseWheelEventArgs e) { }
|
---|
40 |
|
---|
41 | private void OnMouseUp(object sender, MouseButtonEventArgs e)
|
---|
42 | {
|
---|
43 | OnPlotterMouseUp(e);
|
---|
44 | }
|
---|
45 |
|
---|
46 | protected virtual void OnPlotterMouseUp(MouseButtonEventArgs e) { }
|
---|
47 |
|
---|
48 | private void OnMouseDown(object sender, MouseButtonEventArgs e)
|
---|
49 | {
|
---|
50 | OnPlotterMouseDown(e);
|
---|
51 | }
|
---|
52 |
|
---|
53 | protected virtual void OnPlotterMouseDown(MouseButtonEventArgs e) { }
|
---|
54 |
|
---|
55 | private void OnMouseMove(object sender, MouseEventArgs e)
|
---|
56 | {
|
---|
57 | OnPlotterMouseMove(e);
|
---|
58 | }
|
---|
59 |
|
---|
60 | protected virtual void OnPlotterMouseMove(MouseEventArgs e) { }
|
---|
61 |
|
---|
62 | }
|
---|
63 | }
|
---|