/// <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; }
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; } } }
public void SetKeyAssignmentsTo(WhichKeyboardLayout whichKeyboardLayout) { AssignKeys(KeyAssignmentSet.For(whichKeyboardLayout)); }