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); }
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 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); }
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); }
public static bool ContainCard(Menu_Sort_Box key, Card card) { if (cardGroups.ContainsKey(key)) { return cardGroups[key].Contains(card); } else { return false; } }
public static bool ContainCard(Menu_Sort_Box key, Card card) { if (cardGroups.ContainsKey(key)) { return(cardGroups[key].Contains(card)); } else { return(false); } }
//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); }
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); }
//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); } }
//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); }
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); } })); }
//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 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); }
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)); }
public bool ContainCard(Menu_Sort_Box key, Card c) { return Group_List.CardGroups.ContainsKey(key)&& Group_List.CardGroups[key].Contains(c); }
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; } })); }