public void ProcessInitailizePoseCombination(PoseCombination poseCombination, PoseCombination editPoseCombination) { for (int i = 0; i < editPoseCombination.GetPoseLength(); i++) { poseCombination.AddPose(editPoseCombination.GetPose(i)); } for (int i = 0; i < editPoseCombination.GetKeyLength(); i++) { poseCombination.AddKey(editPoseCombination.GetKey(i)); } if (editPoseCombination.GetIsContinue()) poseCombination.SetIsContinue(); }
public void ProcessKeyPictureBoxPaint(Graphics graphics, PoseCombination poseCombination, Dictionary<Rectangle, Key> keyBoard) { SolidBrush redBrush = new SolidBrush(Color.FromArgb(100, 255, 0, 0)); SolidBrush greenBrush = new SolidBrush(Color.FromArgb(100, 0, 255, 0)); SolidBrush blueBrush = new SolidBrush(Color.FromArgb(100, 0, 0, 255)); for (int i = 0; i < poseCombination.GetKeyLength(); i++) { Key key = poseCombination.GetKey(i); switch (key.GetKeyMode()) { //design by http://stackoverflow.com/questions/2444033/get-dictionary-key-by-value case "press": graphics.FillRectangle(redBrush, keyBoard.FirstOrDefault(x => x.Value.GetKeyName() == key.GetKeyName()).Key); break; case "hold": graphics.FillRectangle(greenBrush, keyBoard.FirstOrDefault(x => x.Value.GetKeyName() == key.GetKeyName()).Key); break; case "release": graphics.FillRectangle(blueBrush, keyBoard.FirstOrDefault(x => x.Value.GetKeyName() == key.GetKeyName()).Key); break; } } }