64 lines
1.8 KiB
C#
64 lines
1.8 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Windows.Input;
|
||
using System.Windows;
|
||
|
||
namespace Microsoft.Research.DynamicDataDisplay.Navigation
|
||
{
|
||
// todo проверить, как происходит работа когда мышь не над плоттером, а над его ребенком
|
||
// todo если все ОК, то перевести все маус навигейшн контролы на этот класс как базовый
|
||
public abstract class MouseNavigationBase : NavigationBase
|
||
{
|
||
protected override void OnPlotterAttached(Plotter plotter)
|
||
{
|
||
base.OnPlotterAttached(plotter);
|
||
|
||
Mouse.AddMouseDownHandler(Parent, OnMouseDown);
|
||
Mouse.AddMouseMoveHandler(Parent, OnMouseMove);
|
||
Mouse.AddMouseUpHandler(Parent, OnMouseUp);
|
||
Mouse.AddMouseWheelHandler(Parent, OnMouseWheel);
|
||
}
|
||
|
||
protected override void OnPlotterDetaching(Plotter plotter)
|
||
{
|
||
Mouse.RemoveMouseDownHandler(Parent, OnMouseDown);
|
||
Mouse.RemoveMouseMoveHandler(Parent, OnMouseMove);
|
||
Mouse.RemoveMouseUpHandler(Parent, OnMouseUp);
|
||
Mouse.RemoveMouseWheelHandler(Parent, OnMouseWheel);
|
||
|
||
base.OnPlotterDetaching(plotter);
|
||
}
|
||
|
||
private void OnMouseWheel(object sender, MouseWheelEventArgs e)
|
||
{
|
||
OnPlotterMouseWheel(e);
|
||
}
|
||
|
||
protected virtual void OnPlotterMouseWheel(MouseWheelEventArgs e) { }
|
||
|
||
private void OnMouseUp(object sender, MouseButtonEventArgs e)
|
||
{
|
||
OnPlotterMouseUp(e);
|
||
}
|
||
|
||
protected virtual void OnPlotterMouseUp(MouseButtonEventArgs e) { }
|
||
|
||
private void OnMouseDown(object sender, MouseButtonEventArgs e)
|
||
{
|
||
OnPlotterMouseDown(e);
|
||
}
|
||
|
||
protected virtual void OnPlotterMouseDown(MouseButtonEventArgs e) { }
|
||
|
||
private void OnMouseMove(object sender, MouseEventArgs e)
|
||
{
|
||
OnPlotterMouseMove(e);
|
||
}
|
||
|
||
protected virtual void OnPlotterMouseMove(MouseEventArgs e) { }
|
||
|
||
}
|
||
}
|