Files
DynamicDataDisplay/Charts/Navigation/MouseNavigationBase.cs
2024-02-23 00:46:06 -05:00

64 lines
1.8 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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) { }
}
}