Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / MS / Internal / Shaping / Script.cs / 1 / Script.cs
//+------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation // // File: Script.cs // // Contents: Script identifier // // Created: 3-21-2005 Worachai Chaoweeraprasit (wchao) // //----------------------------------------------------------------------- using System; using System.Collections; namespace MS.Internal.Shaping { ////// Script identifier that maps to OpenType script tags /// internal static class Script { static Script() { // Hash the the reverse lookup for script id for(int i = 0; i < (int)ScriptID.Max; i++) { _idHash.Add(_tags[i], (ScriptID)i); } } static internal ScriptTags[] AllTags { get { return _tags; } } static internal ScriptID ToID(ScriptTags scriptTag) { object script = _idHash[scriptTag]; if(script != null) { return (ScriptID)script; } return ScriptID.Default; } static internal ScriptTags ToTag(ScriptID script) { return _tags[(int)script]; } static private Hashtable _idHash = new Hashtable((int)ScriptID.Max); static private readonly ScriptTags[] _tags = new ScriptTags[] { ScriptTags.Default, // 'dflt' ScriptTags.Arabic, // 'arab' ScriptTags.Armenian, // 'armn' ScriptTags.Bengali, // 'beng' ScriptTags.Bopomofo, // 'bopo' ScriptTags.Braille, // 'brai' ScriptTags.Buginese, // 'bugi' ScriptTags.Buhid, // 'buhd' ScriptTags.CanadianSyllabics, // 'cans' ScriptTags.Cherokee, // 'cher' ScriptTags.CJKIdeographic, // 'hani' ScriptTags.Coptic, // 'copt' ScriptTags.CypriotSyllabary, // 'cprt' ScriptTags.Cyrillic, // 'cyrl' ScriptTags.Deseret, // 'dsrt' ScriptTags.Devanagari, // 'deva' ScriptTags.Ethiopic, // 'ethi' ScriptTags.Georgian, // 'geor' ScriptTags.Glagolitic, // 'glag' ScriptTags.Gothic, // 'goth' ScriptTags.Greek, // 'grek' ScriptTags.Gujarati, // 'gujr' ScriptTags.Gurmukhi, // 'guru' ScriptTags.Hangul, // 'hang' ScriptTags.Hanunoo, // 'hano' ScriptTags.Hebrew, // 'hebr' ScriptTags.Kannada, // 'knda' ScriptTags.Hiragana, // 'kana' // ScriptTags.Katakana, // 'kana' (same tag as Hiragana) ScriptTags.Kharosthi, // 'khar' ScriptTags.Khmer, // 'khmr' ScriptTags.Lao, // 'lao ' ScriptTags.Latin, // 'latn' ScriptTags.Limbu, // 'limb' ScriptTags.LinearB, // 'linb' ScriptTags.Malayalam, // 'mlym' ScriptTags.MathematicalAlphanumericSymbols, // 'math' ScriptTags.Mongolian, // 'mong' ScriptTags.MusicalSymbols, // 'musc' ScriptTags.Myanmar, // 'mymr' ScriptTags.NewTaiLue, // 'talu' ScriptTags.Ogham, // 'ogam' ScriptTags.OldItalic, // 'ital' ScriptTags.OldPersianCuneiform, // 'xpeo' ScriptTags.Oriya, // 'orya' ScriptTags.Osmanya, // 'osma' ScriptTags.Runic, // 'runr' ScriptTags.Shavian, // 'shaw' ScriptTags.Sinhala, // 'sinh' ScriptTags.SylotiNagri, // 'sylo' ScriptTags.Syriac, // 'syrc' ScriptTags.Tagalog, // 'tglg' ScriptTags.Tagbanwa, // 'tagb' ScriptTags.TaiLe, // 'tale' ScriptTags.Tamil, // 'taml' ScriptTags.Telugu, // 'telu' ScriptTags.Thaana, // 'thaa' ScriptTags.Thai, // 'thai' ScriptTags.Tibetan, // 'tibt' ScriptTags.Tifinagh, // 'tfng' ScriptTags.UgariticCuneiform, // 'ugar' ScriptTags.Yi, // 'yi ' Script.TagDigit, // 'zzz0' Script.TagControl, // 'zzz1' Script.TagMirror, // 'zzz2' }; internal const ScriptTags TagDigit = (ScriptTags)0x307a7a7a; // 'zzz0' internal const ScriptTags TagControl = (ScriptTags)0x317a7a7a; // 'zzz1' internal const ScriptTags TagMirror = (ScriptTags)0x327a7a7a; // 'zzz2' internal static readonly ScriptFlags[] Flags = new ScriptFlags[] { /* Default */ ScriptFlags.None, /* Arabic */ ScriptFlags.None, /* Armenian */ ScriptFlags.None, /* Bengali */ ScriptFlags.NeedsCaretInfo, /* Bopomofo */ ScriptFlags.None, /* Braille */ ScriptFlags.None, /* Buginese */ ScriptFlags.NeedsCaretInfo, /* Buhid */ ScriptFlags.None, /* CanadianSyllabics */ ScriptFlags.None, /* Cherokee */ ScriptFlags.None, /* CJKIdeographic */ ScriptFlags.None, /* Coptic */ ScriptFlags.None, /* CypriotSyllabary */ ScriptFlags.None, /* Cyrillic */ ScriptFlags.None, /* Deseret */ ScriptFlags.None, /* Devanagari */ ScriptFlags.NeedsCaretInfo, /* Ethiopic */ ScriptFlags.None, /* Georgian */ ScriptFlags.None, /* Glagolitic */ ScriptFlags.None, /* Gothic */ ScriptFlags.None, /* Greek */ ScriptFlags.None, /* Gujarati */ ScriptFlags.NeedsCaretInfo, /* Gurmukhi */ ScriptFlags.NeedsCaretInfo, /* Hangul */ ScriptFlags.NeedsCaretInfo, /* Hanunoo */ ScriptFlags.None, /* Hebrew */ ScriptFlags.NeedsCaretInfo, /* Kannada */ ScriptFlags.NeedsCaretInfo, /* Kana */ ScriptFlags.None, /* Kharoshthi */ ScriptFlags.NeedsCaretInfo, /* Khmer */ ScriptFlags.NeedsCaretInfo, /* Lao */ ScriptFlags.NeedsCaretInfo, /* Latin */ ScriptFlags.None, /* Limbu */ ScriptFlags.NeedsCaretInfo, /* LinearB */ ScriptFlags.None, /* Malayalam */ ScriptFlags.NeedsCaretInfo, /* MathematicalAlphanumericSymbols */ ScriptFlags.None, /* Mongolian */ ScriptFlags.NeedsCaretInfo, /* MusicalSymbols */ ScriptFlags.None, /* Myanmar */ ScriptFlags.NeedsCaretInfo, /* NewTaiLue */ ScriptFlags.NeedsCaretInfo, /* Ogham */ ScriptFlags.None, /* OldItalic */ ScriptFlags.None, /* OldPersianCuneiform */ ScriptFlags.None, /* Oriya */ ScriptFlags.NeedsCaretInfo, /* Osmanya */ ScriptFlags.None, /* Runic */ ScriptFlags.None, /* Shavian */ ScriptFlags.None, /* Sinhala */ ScriptFlags.NeedsCaretInfo, /* SylotiNagri */ ScriptFlags.NeedsCaretInfo, /* Syriac */ ScriptFlags.None, /* Tagalog */ ScriptFlags.None, /* Tagbanwa */ ScriptFlags.None, /* TaiLe */ ScriptFlags.None, /* Tamil */ ScriptFlags.NeedsCaretInfo, /* Telugu */ ScriptFlags.NeedsCaretInfo, /* Thaana */ ScriptFlags.NeedsCaretInfo, /* Thai */ ScriptFlags.NeedsCaretInfo, /* Tibetan */ ScriptFlags.NeedsCaretInfo, /* Tifinagh */ ScriptFlags.None, /* UgariticCuneiform */ ScriptFlags.None, /* Yi */ ScriptFlags.None, /* Digit */ ScriptFlags.None, /* Control */ ScriptFlags.None, /* Mirror */ ScriptFlags.None, }; } ////// Script-specific flags /// [Flags] internal enum ScriptFlags : ushort { None = 0, NeedsCaretInfo = 1, // Requires complex caret restriction } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //+------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation // // File: Script.cs // // Contents: Script identifier // // Created: 3-21-2005 Worachai Chaoweeraprasit (wchao) // //----------------------------------------------------------------------- using System; using System.Collections; namespace MS.Internal.Shaping { ////// Script identifier that maps to OpenType script tags /// internal static class Script { static Script() { // Hash the the reverse lookup for script id for(int i = 0; i < (int)ScriptID.Max; i++) { _idHash.Add(_tags[i], (ScriptID)i); } } static internal ScriptTags[] AllTags { get { return _tags; } } static internal ScriptID ToID(ScriptTags scriptTag) { object script = _idHash[scriptTag]; if(script != null) { return (ScriptID)script; } return ScriptID.Default; } static internal ScriptTags ToTag(ScriptID script) { return _tags[(int)script]; } static private Hashtable _idHash = new Hashtable((int)ScriptID.Max); static private readonly ScriptTags[] _tags = new ScriptTags[] { ScriptTags.Default, // 'dflt' ScriptTags.Arabic, // 'arab' ScriptTags.Armenian, // 'armn' ScriptTags.Bengali, // 'beng' ScriptTags.Bopomofo, // 'bopo' ScriptTags.Braille, // 'brai' ScriptTags.Buginese, // 'bugi' ScriptTags.Buhid, // 'buhd' ScriptTags.CanadianSyllabics, // 'cans' ScriptTags.Cherokee, // 'cher' ScriptTags.CJKIdeographic, // 'hani' ScriptTags.Coptic, // 'copt' ScriptTags.CypriotSyllabary, // 'cprt' ScriptTags.Cyrillic, // 'cyrl' ScriptTags.Deseret, // 'dsrt' ScriptTags.Devanagari, // 'deva' ScriptTags.Ethiopic, // 'ethi' ScriptTags.Georgian, // 'geor' ScriptTags.Glagolitic, // 'glag' ScriptTags.Gothic, // 'goth' ScriptTags.Greek, // 'grek' ScriptTags.Gujarati, // 'gujr' ScriptTags.Gurmukhi, // 'guru' ScriptTags.Hangul, // 'hang' ScriptTags.Hanunoo, // 'hano' ScriptTags.Hebrew, // 'hebr' ScriptTags.Kannada, // 'knda' ScriptTags.Hiragana, // 'kana' // ScriptTags.Katakana, // 'kana' (same tag as Hiragana) ScriptTags.Kharosthi, // 'khar' ScriptTags.Khmer, // 'khmr' ScriptTags.Lao, // 'lao ' ScriptTags.Latin, // 'latn' ScriptTags.Limbu, // 'limb' ScriptTags.LinearB, // 'linb' ScriptTags.Malayalam, // 'mlym' ScriptTags.MathematicalAlphanumericSymbols, // 'math' ScriptTags.Mongolian, // 'mong' ScriptTags.MusicalSymbols, // 'musc' ScriptTags.Myanmar, // 'mymr' ScriptTags.NewTaiLue, // 'talu' ScriptTags.Ogham, // 'ogam' ScriptTags.OldItalic, // 'ital' ScriptTags.OldPersianCuneiform, // 'xpeo' ScriptTags.Oriya, // 'orya' ScriptTags.Osmanya, // 'osma' ScriptTags.Runic, // 'runr' ScriptTags.Shavian, // 'shaw' ScriptTags.Sinhala, // 'sinh' ScriptTags.SylotiNagri, // 'sylo' ScriptTags.Syriac, // 'syrc' ScriptTags.Tagalog, // 'tglg' ScriptTags.Tagbanwa, // 'tagb' ScriptTags.TaiLe, // 'tale' ScriptTags.Tamil, // 'taml' ScriptTags.Telugu, // 'telu' ScriptTags.Thaana, // 'thaa' ScriptTags.Thai, // 'thai' ScriptTags.Tibetan, // 'tibt' ScriptTags.Tifinagh, // 'tfng' ScriptTags.UgariticCuneiform, // 'ugar' ScriptTags.Yi, // 'yi ' Script.TagDigit, // 'zzz0' Script.TagControl, // 'zzz1' Script.TagMirror, // 'zzz2' }; internal const ScriptTags TagDigit = (ScriptTags)0x307a7a7a; // 'zzz0' internal const ScriptTags TagControl = (ScriptTags)0x317a7a7a; // 'zzz1' internal const ScriptTags TagMirror = (ScriptTags)0x327a7a7a; // 'zzz2' internal static readonly ScriptFlags[] Flags = new ScriptFlags[] { /* Default */ ScriptFlags.None, /* Arabic */ ScriptFlags.None, /* Armenian */ ScriptFlags.None, /* Bengali */ ScriptFlags.NeedsCaretInfo, /* Bopomofo */ ScriptFlags.None, /* Braille */ ScriptFlags.None, /* Buginese */ ScriptFlags.NeedsCaretInfo, /* Buhid */ ScriptFlags.None, /* CanadianSyllabics */ ScriptFlags.None, /* Cherokee */ ScriptFlags.None, /* CJKIdeographic */ ScriptFlags.None, /* Coptic */ ScriptFlags.None, /* CypriotSyllabary */ ScriptFlags.None, /* Cyrillic */ ScriptFlags.None, /* Deseret */ ScriptFlags.None, /* Devanagari */ ScriptFlags.NeedsCaretInfo, /* Ethiopic */ ScriptFlags.None, /* Georgian */ ScriptFlags.None, /* Glagolitic */ ScriptFlags.None, /* Gothic */ ScriptFlags.None, /* Greek */ ScriptFlags.None, /* Gujarati */ ScriptFlags.NeedsCaretInfo, /* Gurmukhi */ ScriptFlags.NeedsCaretInfo, /* Hangul */ ScriptFlags.NeedsCaretInfo, /* Hanunoo */ ScriptFlags.None, /* Hebrew */ ScriptFlags.NeedsCaretInfo, /* Kannada */ ScriptFlags.NeedsCaretInfo, /* Kana */ ScriptFlags.None, /* Kharoshthi */ ScriptFlags.NeedsCaretInfo, /* Khmer */ ScriptFlags.NeedsCaretInfo, /* Lao */ ScriptFlags.NeedsCaretInfo, /* Latin */ ScriptFlags.None, /* Limbu */ ScriptFlags.NeedsCaretInfo, /* LinearB */ ScriptFlags.None, /* Malayalam */ ScriptFlags.NeedsCaretInfo, /* MathematicalAlphanumericSymbols */ ScriptFlags.None, /* Mongolian */ ScriptFlags.NeedsCaretInfo, /* MusicalSymbols */ ScriptFlags.None, /* Myanmar */ ScriptFlags.NeedsCaretInfo, /* NewTaiLue */ ScriptFlags.NeedsCaretInfo, /* Ogham */ ScriptFlags.None, /* OldItalic */ ScriptFlags.None, /* OldPersianCuneiform */ ScriptFlags.None, /* Oriya */ ScriptFlags.NeedsCaretInfo, /* Osmanya */ ScriptFlags.None, /* Runic */ ScriptFlags.None, /* Shavian */ ScriptFlags.None, /* Sinhala */ ScriptFlags.NeedsCaretInfo, /* SylotiNagri */ ScriptFlags.NeedsCaretInfo, /* Syriac */ ScriptFlags.None, /* Tagalog */ ScriptFlags.None, /* Tagbanwa */ ScriptFlags.None, /* TaiLe */ ScriptFlags.None, /* Tamil */ ScriptFlags.NeedsCaretInfo, /* Telugu */ ScriptFlags.NeedsCaretInfo, /* Thaana */ ScriptFlags.NeedsCaretInfo, /* Thai */ ScriptFlags.NeedsCaretInfo, /* Tibetan */ ScriptFlags.NeedsCaretInfo, /* Tifinagh */ ScriptFlags.None, /* UgariticCuneiform */ ScriptFlags.None, /* Yi */ ScriptFlags.None, /* Digit */ ScriptFlags.None, /* Control */ ScriptFlags.None, /* Mirror */ ScriptFlags.None, }; } ////// Script-specific flags /// [Flags] internal enum ScriptFlags : ushort { None = 0, NeedsCaretInfo = 1, // Requires complex caret restriction } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CommonXSendMessage.cs
- TimeoutValidationAttribute.cs
- Bold.cs
- TargetException.cs
- DescriptionAttribute.cs
- ProfileManager.cs
- NativeMethods.cs
- XsdCachingReader.cs
- PermissionAttributes.cs
- GlyphingCache.cs
- AuthorizationRule.cs
- SelectionEditor.cs
- ConfigXmlSignificantWhitespace.cs
- DataColumn.cs
- BindingWorker.cs
- AutomationPatternInfo.cs
- VirtualPath.cs
- DrawingVisual.cs
- ResolveCriteriaCD1.cs
- HttpHandlersInstallComponent.cs
- OracleDateTime.cs
- FieldReference.cs
- XmlEntityReference.cs
- FileSecurity.cs
- webproxy.cs
- TextBoxAutoCompleteSourceConverter.cs
- StringConcat.cs
- CustomWebEventKey.cs
- BinaryMessageEncodingBindingElement.cs
- RoleGroup.cs
- SourceFilter.cs
- MergeFailedEvent.cs
- UpdateTranslator.cs
- COM2ColorConverter.cs
- InfocardChannelParameter.cs
- CollectionViewGroupInternal.cs
- NameValuePair.cs
- NegotiationTokenAuthenticatorState.cs
- SmiEventSink.cs
- FormDocumentDesigner.cs
- Queue.cs
- RecordManager.cs
- XMLDiffLoader.cs
- UInt16.cs
- DataGridViewColumnHeaderCell.cs
- PrintDialog.cs
- ResourceIDHelper.cs
- ContextStaticAttribute.cs
- Currency.cs
- DelegateHelpers.Generated.cs
- XmlCodeExporter.cs
- MobileControl.cs
- AuthenticationService.cs
- sqlpipe.cs
- BatchParser.cs
- FilteredDataSetHelper.cs
- TagPrefixInfo.cs
- FileUtil.cs
- DbParameterCollection.cs
- glyphs.cs
- ReachPageContentCollectionSerializer.cs
- RowUpdatedEventArgs.cs
- _HeaderInfoTable.cs
- GraphicsPath.cs
- AuthenticationServiceManager.cs
- ChannelSinkStacks.cs
- RequestDescription.cs
- WebPartMovingEventArgs.cs
- RenderingBiasValidation.cs
- PathFigure.cs
- _TLSstream.cs
- MessageDecoder.cs
- ConstantExpression.cs
- RegexRunnerFactory.cs
- SchemaNotation.cs
- DataGridAddNewRow.cs
- XamlTemplateSerializer.cs
- PersistenceContext.cs
- MaterializeFromAtom.cs
- Encoding.cs
- CursorConverter.cs
- Int32CollectionConverter.cs
- SqlCaseSimplifier.cs
- BCLDebug.cs
- EFTableProvider.cs
- CommonDialog.cs
- HtmlElementErrorEventArgs.cs
- TextTreeUndo.cs
- CursorInteropHelper.cs
- HttpHandlersInstallComponent.cs
- InlineUIContainer.cs
- Mutex.cs
- NativeObjectSecurity.cs
- CompositionTarget.cs
- MobileControlsSection.cs
- PropertyGeneratedEventArgs.cs
- HtmlInputText.cs
- PaperSize.cs
- ColumnHeaderConverter.cs
- TokenBasedSet.cs