Subversion Repositories Projects

Rev

Rev 2432 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2432 Rev 2434
Line 739... Line 739...
739
        private void Window_Closed(object sender, EventArgs e)
739
        private void Window_Closed(object sender, EventArgs e)
740
        {
740
        {
741
            Application.Current.Shutdown();
741
            Application.Current.Shutdown();
742
        }
742
        }
Line 743... Line -...
743
 
-
 
744
        #region doubletap/click //http://stackoverflow.com/questions/9001023/capturing-double-tap-touch-on-multi-touch-screen
-
 
745
        private Point? _lastTapLocation;
-
 
746
        private readonly Stopwatch _doubleTapStopwatch = new Stopwatch();
-
 
747
 
-
 
748
        private bool IsDoubleTap(TouchEventArgs e)
-
 
749
        {
-
 
750
            Point currentTapPosition = e.GetTouchPoint(this).Position;
-
 
751
            bool tapsAreCloseInDistance = false;
-
 
752
            if (_lastTapLocation != null)
-
 
753
            {
-
 
754
                tapsAreCloseInDistance = GetDistanceBetweenPoints(currentTapPosition, (Point)_lastTapLocation) < 70;
-
 
755
            }
-
 
756
            _lastTapLocation = currentTapPosition;
-
 
757
 
-
 
758
            TimeSpan elapsed = _doubleTapStopwatch.Elapsed;
-
 
759
            _doubleTapStopwatch.Restart();
-
 
760
            bool tapsAreCloseInTime = (elapsed != TimeSpan.Zero && elapsed < TimeSpan.FromSeconds(0.4));
-
 
761
 
-
 
762
            if (tapsAreCloseInTime && tapsAreCloseInDistance)
-
 
763
            {
-
 
764
                _lastTapLocation = null;
-
 
765
            }
-
 
766
            return tapsAreCloseInDistance && tapsAreCloseInTime;
-
 
767
        }
-
 
768
 
-
 
769
        private void OnPreviewTouchDown(object sender, TouchEventArgs e)
-
 
770
        {
-
 
771
            if (IsDoubleTap(e))
-
 
772
            {
-
 
773
                MainMap.CanDragMap = false;
-
 
774
                MessageBox.Show("Blubb!");
-
 
775
            }
-
 
776
        }
-
 
777
        public static double GetDistanceBetweenPoints(Point p, Point q)
-
 
778
        {
-
 
779
            double a = p.X - q.X;
-
 
780
            double b = p.Y - q.Y;
-
 
781
            double distance = Math.Sqrt(a * a + b * b);
-
 
782
            return distance;
-
 
783
        }
-
 
784
        private bool IsDoubleClick(MouseButtonEventArgs e)
-
 
785
        {
-
 
786
            Point currentTapPosition = e.GetPosition(this);
-
 
787
            bool tapsAreCloseInDistance = false;
-
 
788
            if (_lastTapLocation != null)
-
 
789
            {
-
 
790
                tapsAreCloseInDistance = GetDistanceBetweenPoints(currentTapPosition, (Point)_lastTapLocation) < 70;
-
 
791
            }
-
 
792
            _lastTapLocation = currentTapPosition;
-
 
793
 
-
 
794
            TimeSpan elapsed = _doubleTapStopwatch.Elapsed;
-
 
795
            _doubleTapStopwatch.Restart();
-
 
796
            bool tapsAreCloseInTime = (elapsed != TimeSpan.Zero && elapsed < TimeSpan.FromSeconds(0.4));
-
 
797
 
-
 
798
            if (tapsAreCloseInTime && tapsAreCloseInDistance)
-
 
799
            {
-
 
800
                _lastTapLocation = null;
-
 
801
            }
-
 
802
            return tapsAreCloseInDistance && tapsAreCloseInTime;
-
 
803
        }
743
 
804
        Point pWPAdd;
744
        Point pWPAdd;
805
        private void GridGMapControl_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
745
        private void GridGMapControl_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
806
        {
746
        {
807
            if (IsDoubleClick(e))
747
            if(e.ClickCount == 2)
808
            {
748
            {
809
                pWPAdd = new Point(e.GetPosition(this).X, e.GetPosition(this).Y);
749
                pWPAdd = new Point(e.GetPosition(this).X, e.GetPosition(this).Y);
810
                canvasAddPoint.Margin = new Thickness(e.GetPosition(this).X, e.GetPosition(this).Y, canvasAddPoint.Margin.Left, canvasAddPoint.Margin.Bottom);
750
                canvasAddPoint.Margin = new Thickness(e.GetPosition(this).X, e.GetPosition(this).Y, canvasAddPoint.Margin.Left, canvasAddPoint.Margin.Bottom);
811
                canvasAddPoint.Visibility = Visibility.Visible;
751
                canvasAddPoint.Visibility = Visibility.Visible;
Line 851... Line 791...
851
                PointLatLng p = MainMap.FromLocalToLatLng((int)pWPAdd.X, (int)pWPAdd.Y);
791
                PointLatLng p = MainMap.FromLocalToLatLng((int)pWPAdd.X, (int)pWPAdd.Y);
852
                _addWP(p,3);
792
                _addWP(p,3);
853
            }
793
            }
854
        }
794
        }
Line 855... Line -...
855
 
-
 
856
        #endregion doubletap/click
795
 
Line 857... Line 796...
857
        #endregion events
796
        #endregion events
Line 858... Line 797...
858
 
797