95 lines
3.2 KiB
C#
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;
|
|
// }
|
|
// }
|
|
// }
|
|
//}
|