Beispiel #1
0
        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 { }
        }
Beispiel #2
0
 public static KeyboardDetails CreateVirtualButton(KeyboardDetails oMissingWords, KeyboardDetails oVKeyboard)
 {
     foreach (var item in oMissingWords)
     {
         oVKeyboard.Add(item.Key, CreateVirtualButton(item.Key, oVKeyboard));
     }
     return(oVKeyboard);
 }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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");
        }
Beispiel #6
0
        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);
            }
        }
Beispiel #7
0
        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);
            }
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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));
        }