Ejemplo n.º 1
0
        static Клавиатура()
        {
            //var КультураИнфо = InputLanguageManager.Current.CurrentInputLanguage;

            byte первый    = 0;
            byte последний = 172;

            var именаКлавиш = Enum.GetNames(typeof(Key));
            var номер       = Enum.ToObject(typeof(Key), 10);
            var h           = new Key();
            var Юникод      = (int)Key.A;

            foreach (var клавиша in  именаКлавиш)
            {
                Клавиши.Добавить(new Строка(клавиша));
            }



            ЮНИКОДСимволКодыРусскихБуквПрописные = new ГруппаТипизированная()
            {
                ТипХранящихсяОбъектов = typeof(Символ)
            };
            var ЮНИКОДСимволКодыРусскихБуквЗаглавные = new ГруппаТипизированная()
            {
                ТипХранящихсяОбъектов = typeof(Символ)
            };

            ЮНИКОДРусскихБукв = new ГруппаОбъектов();

            char большая;

            for (var с = 'а'; с <= 'е'; с++)
            {
                большая = с.ToString().ToUpper()[0];
                ЮНИКОДСимволКодыРусскихБуквПрописные.Добавить(new Символ(большая));
                ЮНИКОДСимволКодыРусскихБуквПрописные.Добавить(new Символ(с));
                ЮНИКОДРусскихБукв.Добавить(new ЦелоеЧисло(с));
            }
            большая = 'ё'.ToString().ToUpper()[0];
            ЮНИКОДСимволКодыРусскихБуквПрописные.Добавить(new Символ(большая));
            ЮНИКОДСимволКодыРусскихБуквПрописные.Добавить(new Символ('ё'));
            ЮНИКОДРусскихБукв.Добавить(new ЦелоеЧисло('ё'));
            for (var с = 'ж'; с <= 'я'; с++)
            {
                большая = с.ToString().ToUpper()[0];
                ЮНИКОДСимволКодыРусскихБуквПрописные.Добавить(new Символ(большая));
                ЮНИКОДСимволКодыРусскихБуквПрописные.Добавить(new Символ(с));
                ЮНИКОДРусскихБукв.Добавить(new ЦелоеЧисло(с));
            }

            var русскаяРаскладка = new Dictionary <Key, char>
            {
                [Key.F]         = 'а',
                [Key.OemComma]  = 'б',
                [Key.D]         = 'в',
                [Key.U]         = 'г',
                [Key.L]         = 'д',
                [Key.T]         = 'е',
                [Key.Oem3]      = 'ё',
                [Key.Oem1]      = 'ж',
                [Key.P]         = 'з',
                [Key.B]         = 'и',
                [Key.Q]         = 'й',
                [Key.R]         = 'к',
                [Key.K]         = 'л',
                [Key.V]         = 'м',
                [Key.Y]         = 'н',
                [Key.J]         = 'о',
                [Key.G]         = 'п',
                [Key.H]         = 'р',
                [Key.C]         = 'с',
                [Key.N]         = 'т',
                [Key.E]         = 'у',
                [Key.A]         = 'ф',
                [Key.Oem4]      = 'х',
                [Key.W]         = 'ц',
                [Key.I]         = 'ш',
                [Key.O]         = 'щ',
                [Key.M]         = 'ь',
                [Key.Oem6]      = 'ъ',
                [Key.Oem7]      = 'э',
                [Key.OemPeriod] = 'ю',
                [Key.Z]         = 'я'
            };

            усскаяРаскладка = new Dictionary <Key, Адрес>();
            // здесь должна быть пара key, modifiers

            //}; // или Инт это трансформация
            // слварь это описание типа связей между элементами (одностороней поиск по ключу)
            // клавишам можно сопаставить действия (удалить, Вставить,)
            //var словарьЮникода = new Dictionary<Адрес, Строка>(); // либо инт
            foreach (var key in русскаяРаскладка.Keys)
            {
                try
                {
                    var символ = русскаяРаскладка[key];
                    усскаяРаскладка[key] =
                        ЮНИКОДСимволКодыРусскихБуквПрописные.Список.Find(
                            c => ((Символ)c).Значение == символ).СобственныйАдресПримитива;
                }
                catch { }
            }
        }
Ejemplo n.º 2
0
        public static void ИнициализацияСловарейЯзыков()
        {
            // это безымянные группы
            var ЮНИКОДСимволКодыРусскихБукв = new ГруппаТипизированная()
            {
                ТипХранящихсяОбъектов = typeof(Символ)
            };

            Хранилище.Добавить(ЮНИКОДСимволКодыРусскихБукв);
            //Клавиатура.ЮНИКОДСимволКодыРусскихБукв = ЮНИКОДСимволКодыРусскихБукв;

            var ЮНИКОДРусскихБукв = new ГруппаОбъектов();

            Хранилище.Добавить(ЮНИКОДРусскихБукв);
            //Клавиатура.ЮНИКОДРусскихБукв = ЮНИКОДРусскихБукв;

            for (var с = 'а'; с <= 'я'; с++)
            {
                ЮНИКОДСимволКодыРусскихБукв.Добавить(new Символ(с));
                ЮНИКОДРусскихБукв.Добавить(new ЦелоеЧисло(с));
            }


            //------------------------------------
            var актБуквы = new Активность()
            {
                Имя = "русские буквы"
            };                                                         // группа всех букв русских например
            var адресАктБуквы = Хранилище.Добавить(актБуквы);
            var связь0        = new СвязьПамять
            {
                ИмяСвязи = "1, а",// номер в алфавите, изображение
                ТипСвязи = "имеет члена"
            };

            актБуквы.ДобавьСвязь(связь0);

            // активность представляет конкретную букву
            // имеет код юникода, изображения возможно прямые, возможно через код Юникода
            // является членом группы Русские буквы  это Группа словосочетания
            // Активности могут быть не активными, ничего не делать только указывать пути
            // Активности группы
            var актБуква = new Активность()
            {
                Имя = "буква а"
            };
            var адресАктБуква = Хранилище.Добавить(актБуква);


            var связь11 = new СвязьПамять
            {
                ИмяСвязи            = "член группы",
                ТипСвязи            = "это", //или является членом группы
                АдресУдаленнойСвязи = связь0.АдресСобственный
            };

            актБуква.ДобавьСвязь(связь11);

            var связь10 = new СвязьПамять
            {
                ИмяСвязи = "Код Юникода",
                ТипСвязи = "имеет" // соответсвует
            };
            var адрессвязи1 = актБуква.ДобавьСвязь(связь10);

            // имеет связь с конкретной буквой, связь с группой "Коды Юникода"
            var актКод = new АктивностьЗначение()
            {
                Значение = new Символ('а')
            };

            актКод.Имя = "Код ЮНИКОДА а"; // это ответ на вопрос Что это? совпадает с связью с группой

            var связь2 = new СвязьПамять();

            связь2.ИмяСвязи = "Буква";
            связь2.ТипСвязи = "чей"; //чей это код
            var адрессвязи2 = актКод.ДобавьСвязь(связь2);

            связь2.АдресУдаленнойСвязи = адрессвязи1;
        }