Example #1
0
 public void ShowLines(Menu_Sort_Box key)
 {
     Dispatcher.BeginInvoke(new Action(() =>
     {
         if (Group_List.CardGroups.ContainsKey(key))
         {
             Point center = key.CurrentPosition;
             Card[] cards = Group_List.CardGroups[key].ToArray();
             if (cards != null && cards.Length > 0)
             {
                 Line[] lines = new Line[cards.Length];
                 for (int i = 0; i < cards.Length; i++)
                 {
                     lines[i]                 = new Line();
                     lines[i].X1              = cards[i].CurrentPosition.X;
                     lines[i].Y1              = cards[i].CurrentPosition.Y;
                     lines[i].X2              = center.X;
                     lines[i].Y2              = center.Y;
                     lines[i].Stroke          = new SolidColorBrush(Colors.LightBlue);
                     lines[i].StrokeThickness = 3;
                     lines[i].Opacity         = 0.8;
                     this.Children.Add(lines[i]);
                 }
                 groupLinks[key] = lines;
             }
         }
     }));
 }
 public void AddGroupButton(Menu_Sort_Box button)
 {
     Dispatcher.BeginInvoke(new Action(() =>
     {
         this.Children.Add(button);
     }));
 }
        public override void FailGesture(object sender, Gesture_Event_Args gEventArgs)
        {
            Menu_Sort_Box b = gEventArgs.GestureObjects[0] as Menu_Sort_Box;

            gestureControler.Control.MainWindow.SortingGestureLayer.RemoveLines(b);
            base.FailGesture(sender, gEventArgs);
        }
        public override void TerminateGesture(object sender, Gesture_Event_Args gEventArgs)
        {
            Menu_Sort_Box box = gEventArgs.GestureObjects[0] as Menu_Sort_Box;

            gestureControler.Control.SortingBoxControler.DeleteGroup(box);
            base.TerminateGesture(sender, gEventArgs);
        }
        //Detects whether the box has been moved.
        public bool IsButtonInOriginPos(Menu_Sort_Box button)
        {
            double w    = STATICS.MENU_BAR_SIZE.Width;
            double h    = STATICS.MENU_BAR_SIZE.Height;
            double x0   = (STATICS.SCREEN_WIDTH - w) / 2;
            double y0   = STATICS.SCREEN_HEIGHT - h;
            double x1   = (STATICS.SCREEN_WIDTH - w) / 2;
            double y1   = 0;
            double x2   = 0;
            double y2   = (STATICS.SCREEN_HEIGHT - w) / 2;
            double x3   = STATICS.SCREEN_WIDTH - h;
            double y3   = (STATICS.SCREEN_HEIGHT - w) / 2;
            Rect   rec0 = new Rect(x0, y0, w, h);
            Rect   rec1 = new Rect(x1, y1, w, h);
            Rect   rec2 = new Rect(x2, y2, h, w);
            Rect   rec3 = new Rect(x3, y3, h, w);

            if (rec0.Contains(button.CurrentPosition) || rec1.Contains(button.CurrentPosition) || rec2.Contains(button.CurrentPosition) || rec3.Contains(button.CurrentPosition))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
 internal void RemoveGroupButton(Menu_Sort_Box box)
 {
     Dispatcher.Invoke(new Action(() =>
     {
         this.Children.Remove(box);
     }));
 }
 public void HighlightCards(Menu_Sort_Box key)
 {
     List<Card> cards = Group_List.CardGroups[key];
     foreach (Card c in cards) {
         c.Hightlight();
     }
 }
        protected override bool checkValid(object[] senders, My_Point[] myPoints)
        {
            Card          c     = senders[0] as Card;
            Menu_Sort_Box b     = senders[1] as Menu_Sort_Box;
            bool          crit1 = c.Contain(b.CurrentPosition);
            bool          crit2 = !Group_List.ContainCard(b, c);

            return(crit1 && crit2);
        }
Example #9
0
 public static void CreateGroup(Menu_Sort_Box key)
 {
     groupBox.Add(key);
     if (!cardGroups.ContainsKey(key))
     {
         List<Card> list = new List<Card>();
         cardGroups.Add(key, list);
     }
 }
Example #10
0
 public static void CreateGroup(Menu_Sort_Box key)
 {
     groupBox.Add(key);
     if (!cardGroups.ContainsKey(key))
     {
         List <Card> list = new List <Card>();
         cardGroups.Add(key, list);
     }
 }
        public void DehighlightCards(Menu_Sort_Box key)
        {
            List <Card> cards = Group_List.CardGroups[key];

            foreach (Card c in cards)
            {
                c.Dehightlight();
            }
        }
 internal void DeleteGroup(Menu_Sort_Box box)
 {
     Card[] cards = Group_List.CardGroups[box].ToArray();
     foreach (Card c in cards) {
         c.RemoveFromGroup(box);
     }
     Group_List.Remove(box);
     control.MainWindow.MenuLayer.RemoveGroupButton(box);
 }
Example #13
0
        public override void TerminateGesture(object sender, Gesture_Event_Args gEventArgs)
        {
            Card          c = gEventArgs.GestureObjects[1] as Card;
            Menu_Sort_Box b = gEventArgs.GestureObjects[0] as Menu_Sort_Box;

            Group_List.RemoveCard(b, c);
            gestureControler.Control.MainWindow.SortingGestureLayer.Repaint();
            base.TerminateGesture(sender, gEventArgs);
        }
 internal void DeleteGroup(Menu_Sort_Box box)
 {
     Card[] cards = Group_List.CardGroups[box].ToArray();
     foreach (Card c in cards)
     {
         c.RemoveFromGroup(box);
     }
     Group_List.Remove(box);
     control.MainWindow.MenuLayer.RemoveGroupButton(box);
 }
Example #15
0
 public static bool ContainCard(Menu_Sort_Box key, Card card)
 {
     if (cardGroups.ContainsKey(key))
     {
         return cardGroups[key].Contains(card);
     }
     else {
         return false;
     }
 }
Example #16
0
 public static bool ContainCard(Menu_Sort_Box key, Card card)
 {
     if (cardGroups.ContainsKey(key))
     {
         return(cardGroups[key].Contains(card));
     }
     else
     {
         return(false);
     }
 }
Example #17
0
        //delete the group "key"
        public static void Remove(Menu_Sort_Box key)
        {
            if (cardGroups.ContainsKey(key))
            {
                foreach (Card c in cardGroups[key]) {
                    c.RemoveFromGroup(key);
                }
                cardGroups.Remove(key);

            }
        }
Example #18
0
 //delete the group "key"
 public static void Remove(Menu_Sort_Box key)
 {
     if (cardGroups.ContainsKey(key))
     {
         foreach (Card c in cardGroups[key])
         {
             c.RemoveFromGroup(key);
         }
         cardGroups.Remove(key);
     }
 }
 public void CreateGroup(String owner, String id, String text, String textbrief, Point position)
 {
     Menu_Sort_Box box = new Menu_Sort_Box(control.MainWindow.MenuLayer, owner, id, text, textbrief);
     box.IsManipulationEnabled = true;
     box.IsHitTestVisible = true;
     Matrix matrix = new Matrix(1, 0, 0, 1, position.X, position.Y);
     box.RenderTransform = new MatrixTransform(matrix);
     box.SetStartPosition(matrix.OffsetX + box.Width / 2, matrix.OffsetY + box.Height / 2);
     Group_List.CreateGroup(box);
     control.MainWindow.MenuLayer.AddGroupButton(box);
 }
        public static String PrintRecord(MainWindow mainWindow, Gesture_Event gesture, Gesture_Event_Args args, GESTURESTATUS status)
        {
            String oneRecord = "";

            if (STATICS.DEBUG_MODE)
            {
                RecordObj rObj = new RecordObj();
                oneRecord      += DateTime.Now.ToString("h:mm:ss:fff tt");
                rObj.time_stemp = DateTime.Now.ToString("h:mm:ss:fff tt");

                oneRecord        += "$" + gesture.GetType().Name.ToString();
                rObj.gesture_name = gesture.GetType().Name.ToString();

                oneRecord  += "$" + status.ToString();
                rObj.status = status.ToString();

                List <String> cards   = new List <string>();
                List <String> buttons = new List <string>();
                foreach (object obj in args.GestureObjects)
                {
                    if (obj is Card)
                    {
                        Card c = obj as Card;
                        oneRecord += "$" + "Card={" + c.Owner + "," + c.UUID + "," + "}";
                        cards.Add(c.Owner + "," + c.UUID + ",");
                    }
                    else if (obj is Menu_Sort_Box)
                    {
                        Menu_Sort_Box b = obj as Menu_Sort_Box;
                        oneRecord += "$" + "Button={" + b.GroupID + "," + b.GroupText + "}";
                        buttons.Add(b.GroupID + "," + b.GroupText);
                    }
                }
                rObj.cards   = cards.ToArray();
                rObj.buttons = buttons.ToArray();

                List <String> points = new List <string>();
                int           index  = 0;
                foreach (My_Point point in args.GesturePoints)
                {
                    oneRecord += "$" + "Point={" + index + "," + "[" + point.StartTime.ToString("h:mm:ss:fff tt") + "," + point.StartPoint.Position.ToString() + "]"
                                 + "," + "[" + DateTime.Now.ToString("h:mm:ss:fff tt") + "," + point.CurrentPoint.Position.ToString() + "]" + "}";
                    points.Add(point.StartTime.ToString("h:mm:ss:fff tt") + "," + point.StartPoint.Position.ToString() + "," +
                               DateTime.Now.ToString("h:mm:ss:fff tt") + "," + point.CurrentPoint.Position.ToString());
                    index++;
                }
                rObj.points = points.ToArray();
                mainWindow.ControlWindow.SaveRecord(rObj);
                mainWindow.ControlWindow.UpdateTextInfo(oneRecord, 2);
            }
            return(oneRecord);
        }
Example #21
0
        protected override bool checkValid(object[] senders, My_Point[] myPoints)
        {
            Menu_Sort_Box    categoryBox = senders[0] as Menu_Sort_Box;
            Menu_Recycle_Bin recycleBox  = senders[1] as Menu_Recycle_Bin;

            if (recycleBox != null && categoryBox != null && Math.Sqrt(Math.Pow((categoryBox.CurrentPosition.X - recycleBox.XCoord), 2) +
                                                                       Math.Pow((categoryBox.CurrentPosition.Y - recycleBox.YCoord), 2))
                < 50)
            {
                return(true);
            }
            return(false);
        }
        public void CreateGroup(String owner, String id, String text, String textbrief, Point position)
        {
            Menu_Sort_Box box = new Menu_Sort_Box(control.MainWindow.MenuLayer, owner, id, text, textbrief);

            box.IsManipulationEnabled = true;
            box.IsHitTestVisible      = true;
            Matrix matrix = new Matrix(1, 0, 0, 1, position.X, position.Y);

            box.RenderTransform = new MatrixTransform(matrix);
            box.SetStartPosition(matrix.OffsetX + box.Width / 2, matrix.OffsetY + box.Height / 2);
            Group_List.CreateGroup(box);
            control.MainWindow.MenuLayer.AddGroupButton(box);
        }
Example #23
0
 //Add a card to the group "key"
 public static void Add(Menu_Sort_Box key, Card card)
 {
     if (!cardGroups.ContainsKey(key))
     {
         List <Card> list = new List <Card>();
         list.Add(card);
         cardGroups.Add(key, list);
     }
     else
     {
         cardGroups[key].Add(card);
     }
 }
Example #24
0
 //Add a card to the group "key"
 public static void Add(Menu_Sort_Box key, Card card)
 {
     if (!cardGroups.ContainsKey(key))
     {
         List<Card> list = new List<Card>();
         list.Add(card);
         cardGroups.Add(key, list);
     }
     else
     {
         cardGroups[key].Add(card);
     }
 }
        public override void RegisterGesture(object sender, Gesture_Event_Args gEventArgs)
        {
            Menu_Sort_Box b = gEventArgs.GestureObjects[1] as Menu_Sort_Box;

            if (Group_List.CardGroups.ContainsKey(b) && !gestureControler.Control.MainWindow.MenuLayer.IsButtonInOriginPos(b))
            {
                Card[] cards = Group_List.CardGroups[b].ToArray();
                foreach (Card c in cards)
                {
                    c.Hightlight(Colors.Gold);
                }
            }
            base.RegisterGesture(sender, gEventArgs);
        }
        public override void FailGesture(object sender, Gesture_Event_Args gEventArgs)
        {
            Menu_Sort_Box b = gEventArgs.GestureObjects[1] as Menu_Sort_Box;

            if (Group_List.CardGroups.ContainsKey(b))
            {
                Card[] cards = Group_List.CardGroups[b].ToArray();
                foreach (Card c in cards)
                {
                    c.Dehightlight();
                }
            }
            base.FailGesture(sender, gEventArgs);
        }
Example #27
0
 public void RemoveLines(Menu_Sort_Box key)
 {
     Dispatcher.BeginInvoke(new Action(() =>
     {
         if (groupLinks.ContainsKey(key))
         {
             Line[] lines = groupLinks[key];
             for (int i = 0; i < lines.Length; i++)
             {
                 this.Children.Remove(lines[i]);
             }
             groupLinks.Remove(key);
         }
     }));
 }
 public void RemoveLines(Menu_Sort_Box key)
 {
     Dispatcher.BeginInvoke(new Action(() =>
        {
            if (groupLinks.ContainsKey(key))
            {
                Line[] lines = groupLinks[key];
                for (int i = 0; i < lines.Length; i++)
                {
                    this.Children.Remove(lines[i]);
                }
                groupLinks.Remove(key);
            }
        }));
 }
Example #29
0
 //remove the card from the group "key"
 public static void RemoveCard(Menu_Sort_Box key, Card card)
 {
     if (cardGroups.ContainsKey(key))
     {
         if (cardGroups[key].Contains(card))
         {
             card.RemoveFromGroup(key);
             cardGroups[key].Remove(card);
             if (cardGroups[key].Count == 0)
             {
                 Remove(key);
             }
         }
     }
 }
Example #30
0
 public void RemoveFromGroup(Menu_Sort_Box msBox)
 {
     Dispatcher.BeginInvoke(new Action(() =>
     {
         if (groupLists.Contains(msBox))
         {
             groupLists.Remove(msBox);
             String str = "";
             foreach (Menu_Sort_Box s in groupLists)
             {
                 str += s.GroupTextBrief + " ";
             }
             sortingGroupText.Text = str;
         }
     }));
 }
        protected override void OnManipulationDelta(ManipulationDeltaEventArgs e)
        {
            Menu_Sort_Box     element = e.Source as Menu_Sort_Box;
            ManipulationDelta delta   = e.DeltaManipulation;
            Point             center  = e.ManipulationOrigin;
            MatrixTransform   mxTrans = element.RenderTransform as MatrixTransform;
            Matrix            matrix  = mxTrans.Matrix;

            currentPosition.X += delta.Translation.X;
            currentPosition.Y += delta.Translation.Y;
            //matrix.RotateAt(delta.Rotation, currentPosition.X + this.Width / 2, currentPosition.Y + this.Height / 2);
            matrix.Translate(delta.Translation.X, delta.Translation.Y);
            element.RenderTransform = new MatrixTransform(matrix);

            e.Handled = true;
            base.OnManipulationDelta(e);
        }
Example #32
0
        public static Gesture_Event_Deleting_Bin Detect(List <My_Point> points, Gesture_Controler controler)
        {
            List <My_Point>            result        = new List <My_Point>();
            Gesture_Event_Deleting_Bin deletingEvent = null;

            foreach (My_Point p in points)
            {
                if (!result.Contains(p) && p.Sender is Menu_Sort_Box)
                {
                    Menu_Sort_Box category = p.Sender as Menu_Sort_Box;
                    foreach (Menu_Container mc in controler.Control.MainWindow.MenuLayer.MenuBars)
                    {
                        if (mc != null && category != null && Math.Sqrt(Math.Pow((category.CurrentPosition.X - mc.RecycleButton.XCoord), 2) +
                                                                        Math.Pow((category.CurrentPosition.Y - mc.RecycleButton.YCoord), 2))
                            < 50)
                        {
                            mc.displayRecycleNotification();
                            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]    = category;
                            objects[1]    = mc.RecycleButton;
                            deletingEvent = new Gesture_Event_Deleting_Bin();
                            Gesture_List.addGesture(deletingEvent);
                            Gesture_Deleting_Bin_Listener gestureListener = new Gesture_Deleting_Bin_Listener(controler, deletingEvent);
                            deletingEvent.Register(objects, argPoints);
                        }
                        else if (mc != null)
                        {
                            mc.removeRecycleNotification();
                        }
                    }
                }
            }
            return(deletingEvent);
        }
        public override void TerminateGesture(object sender, Gesture_Event_Args gEventArgs)
        {
            Menu_Sort_Box button = gEventArgs.GestureObjects[0] as Menu_Sort_Box;

            Card[] cards = new Card[gEventArgs.GestureObjects.Length - 1];
            for (int i = 0; i < cards.Length; i++)
            {
                cards[i] = gEventArgs.GestureObjects[i + 1] as Card;
            }
            foreach (Card card in cards)
            {
                if (!gestureControler.Control.MainWindow.Controlers.SortingBoxControler.ContainCard(button, card))
                {
                    gestureControler.Control.MainWindow.Controlers.SortingBoxControler.GroupCard(button, card);
                }
                else
                {
                    gestureControler.Control.MainWindow.Controlers.SortingBoxControler.RemoveCard(button, card);
                }
            }
            base.TerminateGesture(sender, gEventArgs);
        }
        public override void TerminateGesture(object sender, Gesture_Event_Args gEventArgs)
        {
            Card          c = gEventArgs.GestureObjects[0] as Card;
            Menu_Sort_Box b = gEventArgs.GestureObjects[1] as Menu_Sort_Box;

            if (!gestureControler.Control.MainWindow.MenuLayer.IsButtonInOriginPos(b))
            {
                c.SortToGroup(b);
                Group_List.Add(b, c);
                My_Point point = gEventArgs.GesturePoints[0];
                Vector   v     = new Vector(c.PreviousPostion.X - c.CurrentPosition.X, c.PreviousPostion.Y - c.CurrentPosition.Y);
                v.Normalize();
                c.MoveCard(v.X * 150, v.Y * 150, 0.5);
            }
            if (Group_List.CardGroups.ContainsKey(b))
            {
                Card[] cards = Group_List.CardGroups[b].ToArray();
                foreach (Card cc in cards)
                {
                    cc.Dehightlight();
                }
            }
            base.TerminateGesture(sender, gEventArgs);
        }
 //Detects whether the box has been moved.
 public bool IsButtonInOriginPos(Menu_Sort_Box button)
 {
     double w = STATICS.MENU_BAR_SIZE.Width;
     double h = STATICS.MENU_BAR_SIZE.Height;
     double x0 = (STATICS.SCREEN_WIDTH - w) / 2;
     double y0 = STATICS.SCREEN_HEIGHT - h;
     double x1 = (STATICS.SCREEN_WIDTH - w) / 2;
     double y1 = 0;
     double x2 = 0;
     double y2 = (STATICS.SCREEN_HEIGHT - w) / 2;
     double x3 = STATICS.SCREEN_WIDTH - h;
     double y3 = (STATICS.SCREEN_HEIGHT - w) / 2;
     Rect rec0 = new Rect(x0, y0, w, h);
     Rect rec1 = new Rect(x1, y1, w, h);
     Rect rec2 = new Rect(x2, y2, h, w);
     Rect rec3 = new Rect(x3, y3, h, w);
     if (rec0.Contains(button.CurrentPosition) || rec1.Contains(button.CurrentPosition) || rec2.Contains(button.CurrentPosition) || rec3.Contains(button.CurrentPosition))
     {
         return true;
     }
     else
         return false;
 }
 public void RemoveCard(Menu_Sort_Box key, Card c)
 {
     Group_List.RemoveCard(key, c);
     c.RemoveFromGroup(key);
 }
 public void GroupCard(Menu_Sort_Box key, Card c)
 {
     Group_List.Add(key, c);
     c.SortToGroup(key);
 }
 public bool ContainCard(Menu_Sort_Box key, Card c)
 {
     return(Group_List.CardGroups.ContainsKey(key) &&
            Group_List.CardGroups[key].Contains(c));
 }
Example #39
0
 //remove the card from the group "key"
 public static void RemoveCard(Menu_Sort_Box key, Card card)
 {
     if (cardGroups.ContainsKey(key))
     {
         if (cardGroups[key].Contains(card))
         {
             card.RemoveFromGroup(key);
             cardGroups[key].Remove(card);
             if (cardGroups[key].Count == 0)
             {
                 Remove(key);
             }
         }
     }
 }
 public void ShowLines(Menu_Sort_Box key)
 {
     Dispatcher.BeginInvoke(new Action(() =>
     {
         if (Group_List.CardGroups.ContainsKey(key))
         {
             Point center = key.CurrentPosition;
             Card[] cards = Group_List.CardGroups[key].ToArray();
             if (cards != null && cards.Length > 0)
             {
                 Line[] lines = new Line[cards.Length];
                 for (int i = 0; i < cards.Length; i++)
                 {
                     lines[i] = new Line();
                     lines[i].X1 = cards[i].CurrentPosition.X;
                     lines[i].Y1 = cards[i].CurrentPosition.Y;
                     lines[i].X2 = center.X;
                     lines[i].Y2 = center.Y;
                     lines[i].Stroke = new SolidColorBrush(Colors.LightBlue);
                     lines[i].StrokeThickness = 3;
                     lines[i].Opacity = 0.8;
                     this.Children.Add(lines[i]);
                 }
                 groupLinks[key] = lines;
             }
         }
     }));
 }
 internal void RemoveGroupButton(Menu_Sort_Box box)
 {
     Dispatcher.Invoke(new Action(() =>
     {
         this.Children.Remove(box);
     }));
 }
 public bool ContainCard(Menu_Sort_Box key, Card c)
 {
     return Group_List.CardGroups.ContainsKey(key)&&
         Group_List.CardGroups[key].Contains(c);
 }
Example #43
0
 public void SortToGroup(Menu_Sort_Box msBox)
 {
     Dispatcher.BeginInvoke(new Action(() =>
     {
         if (!groupLists.Contains(msBox))
         {
             groupLists.Add(msBox);
             String str = "";
             foreach (Menu_Sort_Box s in groupLists)
             {
                 str += s.GroupTextBrief+" ";
             }
             sortingGroupText.Text = str;
         }
     }));
 }
 public void GroupCard(Menu_Sort_Box key, Card c)
 {
     Group_List.Add(key, c);
     c.SortToGroup(key);
 }
 public void AddGroupButton(Menu_Sort_Box button)
 {
     Dispatcher.BeginInvoke(new Action(() =>
     {
         this.Children.Add(button);
     }));
 }
 public void RemoveCard(Menu_Sort_Box key, Card c)
 {
     Group_List.RemoveCard(key, c);
     c.RemoveFromGroup(key);
 }