public static void ProcessKeyEvent(KeyboardDetails keyboardDetails) { try { byte key; checked { key = (byte)keyboardDetails.Code.virtualKeyCode; } switch (keyboardDetails.EventType) { case KeyEventType.Press: PressKey(key); return; case KeyEventType.Down: KeyDown(key); return; case KeyEventType.Up: KeyUp(key); return; } } catch { } }
public static KeyboardDetails CreateVirtualButton(KeyboardDetails oMissingWords, KeyboardDetails oVKeyboard) { foreach (var item in oMissingWords) { oVKeyboard.Add(item.Key, CreateVirtualButton(item.Key, oVKeyboard)); } return(oVKeyboard); }
private static ButtonDetails FindPositionForMissingButtonRP(string MissingButton, KeyboardDetails ListOfAvailableButtons) { var SideButton = LoadRightPairsStaticData().Where(x => x.Key == MissingButton).Select(x => x.Value).FirstOrDefault(); var RightButton = ListOfAvailableButtons.Where(x => x.Key == SideButton).Select(o => o.Value).FirstOrDefault(); int oWidth = GetWidthBetweenButtons(RightButton.Y, ListOfAvailableButtons); return(new ButtonDetails(RightButton.X + oWidth, RightButton.Y)); }
public static KeyboardDetails VerifyIfTheresMissingChar(KeyboardDetails oData) { var dMissingChars = new KeyboardDetails(); var oDataKeyArray = oData.Select(x => x.Key).ToArray(); foreach (var item in stringArray) { int position = Array.IndexOf(oDataKeyArray, item); if (position == -1) { dMissingChars.Add(item, null); } } return(dMissingChars); }
public void Test() { var list = new KeyboardDetails(); string Seq = "2 3 4 5 6 7 8 9 0 q w e r t u i o p a s d f g h j k l ^ z x c v b n m , ."; var chArr = Seq.Split(' '); int X = 54; int Y = 1032; for (int y = 0; y < 10; y++) { list.Add(chArr[y].ToString(), new ButtonDetails(X, Y)); X += 100; } X = 54; Y += 100; for (int z = 0; z < 10; z++) { list.Add(chArr[z + 10].ToString(), new ButtonDetails(X, Y)); X += 100; } X = 54; Y += 100; for (int y = 0; y < 9; y++) { list.Add(chArr[y + 20].ToString(), new ButtonDetails(X, Y)); X += 100; } X = 54; Y += 100; for (int y = 0; y < 8; y++) { list.Add(chArr[y + 29].ToString(), new ButtonDetails(X, Y)); X += 100; } List <ButtonCategory> xx = StaticDataClass.ButtonCategories; var oo = KeyboardChecker.VerifyIfTheresMissingChar(list); var onlyright = xx.Where(x => x.RPair == true && x.LPair == false); VirtualButtonCreator.CreateVirtualButton(oo, list); Console.WriteLine("sdasdas"); }
private static ButtonDetails CreateVirtualButton(string MissingButton, KeyboardDetails oData) { string ButtonCategory = ClassifyButton(MissingButton); switch (ButtonCategory) { case "leftpair": return(FindPositionForMissingButtonLP(MissingButton, oData)); case "rightpair": return(FindPositionForMissingButtonRP(MissingButton, oData)); case "bothpair": return(FindPositionForMissingButtonBP(MissingButton, oData)); default: return(null); } }
private static dynamic GetAnotherButton(string Path, string Key, KeyboardDetails ListOfAvailableButtons) { switch (Path) { case "leftpair": var SideButton1 = LoadLeftPairsStaticData().Where(x => x.Key == Key).FirstOrDefault(); return(ListOfAvailableButtons.Where(x => x.Key == SideButton1.Value).Select(o => o.Value).FirstOrDefault()); case "rightpair": var SideButton2 = LoadRightPairsStaticData().Where(x => x.Key == Key).FirstOrDefault(); return(ListOfAvailableButtons.Where(x => x.Key == SideButton2.Value).FirstOrDefault()); case "bothpair": var SideButton3 = LoadBothPairsStaticData().Where(x => x.Key == Key).FirstOrDefault(); return(ListOfAvailableButtons.Where(x => x.Key == SideButton3.Value.Item2).FirstOrDefault()); default: return(null); } }
private static int GetWidthBetweenButtons(int Y, KeyboardDetails ListOfAvailableButtons) { var BothPair = false; var CheckIfExist = false; KeyValuePair <string, ButtonDetails> RandomButton = ListOfAvailableButtons.OrderBy(x => Math.Abs(Y - x.Value.Y)).FirstOrDefault(); var SideButton = LoadBothPairsStaticData().Where(x => x.Key == RandomButton.Key).Select(x => x.Value).FirstOrDefault(); CheckIfExist = ListOfAvailableButtons.Keys.ToList().Exists(x => x == SideButton.Item1 && x == SideButton.Item2); BothPair = LoadStaticDataBP().Exists(x => x.ButtonCharacter == RandomButton.Key); while (!(BothPair && CheckIfExist)) { RandomButton = GetAnotherButton(ClassifyButton(RandomButton.Key), RandomButton.Key, ListOfAvailableButtons); BothPair = LoadStaticDataBP().Exists(x => x.ButtonCharacter == RandomButton.Key); CheckIfExist = ListOfAvailableButtons.Keys.ToList().Exists(x => x != SideButton.Item1 && x != SideButton.Item2); SideButton = LoadBothPairsStaticData().Where(x => x.Key == RandomButton.Key).Select(x => x.Value).FirstOrDefault(); } var LeftButton = ListOfAvailableButtons.Where(x => x.Key == SideButton.Item1).Select(o => o.Value).FirstOrDefault(); var RightButton = ListOfAvailableButtons.Where(x => x.Key == SideButton.Item2).Select(o => o.Value).FirstOrDefault(); var MidPos = ((RightButton.X - LeftButton.X)); return(MidPos); }
private static ButtonDetails FindPositionForMissingButtonBP(string MissingButton, KeyboardDetails oData) { var SideButton = LoadBothPairsStaticData().Where(x => x.Key == MissingButton).Select(x => x.Value).FirstOrDefault(); var LeftButton = oData.Where(x => x.Key == SideButton.Item1).Select(o => o.Value).FirstOrDefault(); var RightButton = oData.Where(x => x.Key == SideButton.Item2).Select(o => o.Value).FirstOrDefault(); var MidPos = ((RightButton.X - LeftButton.X)) + LeftButton.X; return(new ButtonDetails(MidPos, LeftButton.Y)); }