public static Gesture_Event_Showing_Sorting Detect(List <My_Point> points, Gesture_Controler controler)
        {
            List <My_Point> result = new List <My_Point>();
            Gesture_Event_Showing_Sorting showGroupEvent = null;

            if (points.Count > 0)
            {
                for (int i = 0; i < points.Count; i++)
                {
                    if (Calculator.CalDistance(points[i].StartPoint, points[i].CurrentPoint) < STATICS.MIN_DISTANCE_FOR_MOVE && points[i].Life > STATICS.MIN_LONG_PRESS_LIFE && points[i].Sender is Menu_Sort_Box)
                    {
                        bool moreThan1 = false;
                        if (points.Count > 1)
                        {
                            for (int m = 0; m < points.Count; m++)
                            {
                                if (i != m && points[i].Sender == points[m].Sender)
                                {
                                    moreThan1 = true;
                                    break;
                                }
                            }
                        }
                        if (!moreThan1)
                        {
                            result.Add(points[i]);
                            My_Point[] argPoints = result.ToArray();
                            object[]   objects   = new object[argPoints.Length];
                            objects[0]            = argPoints[0].Sender;
                            showGroupEvent        = new Gesture_Event_Showing_Sorting();
                            showGroupEvent.Points = argPoints;
                            Gesture_List.addGesture(showGroupEvent);
                            Gesture_Showing_Sorting_Listener gestureListener = new Gesture_Showing_Sorting_Listener(controler, showGroupEvent);
                            showGroupEvent.Register(objects, argPoints);
                            foreach (My_Point p in result)
                            {
                                points.Remove(p);
                            }
                            return(showGroupEvent);
                        }
                    }
                }
            }
            return(null);
        }
        public static Gesture_Event_Sorting Detect(List <My_Point> points, Gesture_Controler controler)
        {
            List <My_Point>       result    = new List <My_Point>();
            Gesture_Event_Sorting sortEvent = null;

            foreach (My_Point p in points)
            {
                if (!result.Contains(p) && p.Sender is Card && Calculator.CalDistance(p.StartPoint, p.CurrentPoint) >= STATICS.MIN_DISTANCE_FOR_MOVE)
                {
                    Card c = p.Sender as Card;
                    foreach (Menu_Sort_Box box in Group_List.GroupBox)
                    {
                        if (c.Contain(box.CurrentPosition))
                        {
                            foreach (My_Point p2 in points)
                            {
                                if (p.Sender == p2.Sender && !result.Contains(p2))
                                {
                                    result.Add(p2);
                                }
                            }
                            My_Point[] argPoints = result.ToArray();
                            object[]   objects   = new object[2];
                            objects[0]       = c;
                            objects[1]       = box;
                            sortEvent        = new Gesture_Event_Sorting();
                            sortEvent.Points = argPoints;
                            Gesture_List.addGesture(sortEvent);
                            Gesture_Sorting_Listener gestureListener = new Gesture_Sorting_Listener(controler, sortEvent);
                            sortEvent.Register(objects, argPoints);
                        }
                    }
                }
            }
            foreach (My_Point p in result)
            {
                points.Remove(p);
            }
            return(sortEvent);
        }
 protected override bool checkValid(object[] senders, My_Point[] myPoints)
 {
     return(Calculator.CalDistance(Points[0].StartPoint, Points[0].CurrentPoint) < STATICS.MIN_DISTANCE_FOR_MOVE);
 }
 public bool Contain(Point p)
 {
     return(Calculator.CalDistance(currentPosition, p) < STATICS.DEAULT_CARD_SIZE.Width / 2);
 }
Exemple #5
0
 protected override bool checkTerminate(object[] senders, My_Point[] myPoints)
 {
     return(!myPoints[0].IsLive && Calculator.CalDistance(myPoints[0].StartPoint, myPoints[0].CurrentPoint) >= STATICS.MIN_DISTANCE_FOR_MOVE);
 }