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

95 lines
3.2 KiB
C#

// todo look to comment for EndlessAnimation
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using Microsoft.Research.DynamicDataDisplay.Navigation;
//using System.Windows.Input;
//using System.Windows;
//using System.Windows.Media.Animation;
//using System.Windows.Media;
//using System.Diagnostics;
//namespace Microsoft.Research.DynamicDataDisplay.Charts.Navigation
//{
// [Obsolete("Unready because Viewport became non-visual and no longer has BeginAnimation method.", true)]
// public class InertialMouseNavigation : MouseNavigation
// {
// public InertialMouseNavigation()
// {
// }
// Point visibleStart;
// Point panningStartPointInScreen;
// int panningStartTime;
// protected override void StartPanning(MouseButtonEventArgs e)
// {
// visibleStart = Viewport.Visible.Location;
// panningStartPointInScreen = e.GetPosition(this);
// base.StartPanning(e);
// panningStartTime = e.Timestamp;
// }
// bool runningAnimation = false;
// protected override void StopPanning(MouseButtonEventArgs e)
// {
// Point panningStopPointInScreen = e.GetPosition(this);
// base.StopPanning(e);
// // mouse click with no panning
// if (panningStartPointInScreen == panningStopPointInScreen)
// {
// // remove all animations on Viewport.Visible
// BeginVisibleAnimation(null);
// return;
// }
// double panningDuration = (e.Timestamp - panningStartTime) / 1000.0;
// double animationStartMinDuration = 0.5; // seconds
// double animationStartMinMouseShift = 50; // pixels
// // mouse moved short enough and for rather long distance.
// if (panningDuration < animationStartMinDuration && (panningStopPointInScreen - panningStartPointInScreen).Length > animationStartMinMouseShift)
// {
// Vector visibleShift = Viewport.Visible.Location - visibleStart;
// EndlessPanningRectAnimation panningAnimation = new EndlessPanningRectAnimation(
// Viewport.Visible,
// visibleShift / panningDuration);
// BeginVisibleAnimation(panningAnimation);
// }
// }
// private void BeginVisibleAnimation(AnimationTimeline animation)
// {
// if (animation != null)
// {
// if (runningAnimation)
// {
// BeginVisibleAnimation(null);
// }
// //Plotter2D.Viewport.BeginAnimation(Viewport2D.VisibleProperty, animation);
// runningAnimation = true;
// }
// else
// {
// if (!runningAnimation)
// return;
// Debug.WriteLine("Removing animation");
// Rect visible = Plotter2D.Viewport.Visible;
// //Plotter2D.Viewport.BeginAnimation(Viewport2D.VisibleProperty, null);
// Plotter2D.Viewport.Visible = visible;
// runningAnimation = false;
// }
// }
// }
//}