/// <summary>
        /// Set the key assignments to those of the give language.
        /// </summary>
        public void SetKeyAssignmentsTo(WhichKeyboardLayout whichKeyboardLayout)
        {
            var keyAssignmentSet = KeyAssignmentSet.For(whichKeyboardLayout);

            KB = keyAssignmentSet;
            Notify("IsDefaultSpecialCharacters");
            Notify("IsSanskrit");
            Notify("IsTamil");
            IsFlowDirectionLeftToRight = keyAssignmentSet.FlowDirection == FlowDirection.LeftToRight;
        }
Ejemplo n.º 2
0
        public void AssignKeys(KeyAssignmentSet keyAssignmentSet)
        {
            //Console.Write("AssignKeys(" + keyAssignmentSet.Language + "), ");
            int n = TheKeyViewModels.Count;

            Debug.Assert(n == keyAssignmentSet.KeyAssignments.Length, "These collections should be the same length.");
            for (int i = 0; i < n; i++)
            {
                KeyViewModel  vm = TheKeyViewModels[i];
                KeyAssignment ka = keyAssignmentSet.KeyAssignments[i];
                vm.IsLetter           = ka.IsLetter;
                vm.UnshiftedCodePoint = (char)ka.UnshiftedCodePoint;
                vm.ShiftedCodePoint   = (char)ka.ShiftedCodePoint;
                if (ka.IsToShowBothGlyphs)
                {
                    // If it's an underscore,
                    if (ka.ShiftedCodePoint == 0x005F)
                    {
                        // double it up because the first one gets eaten
                        string sText = (char)ka.ShiftedCodePoint + Environment.NewLine + (char)ka.UnshiftedCodePoint;
                        string sTextWithUnderscoresDoubled = sText.Replace("_", @"__");
                        vm.Text = sTextWithUnderscoresDoubled;
                    }
                    else
                    {
                        vm.Text = (char)ka.ShiftedCodePoint + Environment.NewLine + (char)ka.UnshiftedCodePoint;
                    }
                }
                else
                {
                    vm.Text = null;
                }
                // Assign the font family, if one is specified..
                if (!String.IsNullOrEmpty(ka.FontFamilyName))
                {
                    // Those assigned to this specific key-assignment, override those assigned to the key-assignment-set.
                    vm.FontFamily = new FontFamily(ka.FontFamilyName);
                }
                else
                {
                    vm.FontFamily = null;
                }
            }
        }
Ejemplo n.º 3
0
 public void SetKeyAssignmentsTo(WhichKeyboardLayout whichKeyboardLayout)
 {
     AssignKeys(KeyAssignmentSet.For(whichKeyboardLayout));
 }