Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- HostingEnvironmentException.cs
- CodeIdentifier.cs
- EntityStoreSchemaFilterEntry.cs
- TypePresenter.xaml.cs
- RegexCaptureCollection.cs
- DrawingGroup.cs
- SimpleRecyclingCache.cs
- BuildProvidersCompiler.cs
- FixedSOMPageConstructor.cs
- MouseButtonEventArgs.cs
- TileBrush.cs
- StorageRoot.cs
- PasswordRecovery.cs
- ColumnHeaderCollectionEditor.cs
- SvcMapFileLoader.cs
- TypeUtil.cs
- HostExecutionContextManager.cs
- HttpRawResponse.cs
- ChildrenQuery.cs
- ResourceProviderFactory.cs
- IndicCharClassifier.cs
- ISO2022Encoding.cs
- DataContractAttribute.cs
- CharKeyFrameCollection.cs
- TileModeValidation.cs
- Shape.cs
- SparseMemoryStream.cs
- ServiceCredentialsElement.cs
- ToolboxControl.cs
- EntityWrapper.cs
- SystemDropShadowChrome.cs
- BrowserCapabilitiesFactoryBase.cs
- XDRSchema.cs
- QilFunction.cs
- MsmqIntegrationInputChannel.cs
- Repeater.cs
- RegexBoyerMoore.cs
- XPathNavigator.cs
- MissingFieldException.cs
- AsymmetricSignatureFormatter.cs
- base64Transforms.cs
- PeerCollaborationPermission.cs
- RawTextInputReport.cs
- MaterialGroup.cs
- DataGridViewRowCancelEventArgs.cs
- SchemaSetCompiler.cs
- TransactionChannel.cs
- ProgressBarRenderer.cs
- XmlNodeChangedEventManager.cs
- mda.cs
- TypeConverterValueSerializer.cs
- CompModSwitches.cs
- FormViewPageEventArgs.cs
- DataTablePropertyDescriptor.cs
- LinqDataSourceDisposeEventArgs.cs
- RegexTree.cs
- DataGridViewColumnCollection.cs
- SchemaNotation.cs
- RenderData.cs
- SqlBuilder.cs
- ExclusiveNamedPipeTransportManager.cs
- QueryStringParameter.cs
- ObjectListGeneralPage.cs
- XmlBindingWorker.cs
- FreezableDefaultValueFactory.cs
- RoutingUtilities.cs
- EntityAdapter.cs
- CheckBoxAutomationPeer.cs
- RuntimeHandles.cs
- ContentPropertyAttribute.cs
- NetworkInformationPermission.cs
- EndPoint.cs
- StylusPointProperties.cs
- CryptoKeySecurity.cs
- TouchFrameEventArgs.cs
- AppSettingsSection.cs
- SingleConverter.cs
- HwndMouseInputProvider.cs
- CollectionBase.cs
- DynamicMetaObjectBinder.cs
- AppModelKnownContentFactory.cs
- RecordManager.cs
- SafeMILHandle.cs
- ObjectFullSpanRewriter.cs
- EncodingTable.cs
- ScrollProperties.cs
- ListViewTableRow.cs
- ContextConfiguration.cs
- PolicyManager.cs
- XmlCharacterData.cs
- DeferrableContent.cs
- _Rfc2616CacheValidators.cs
- HttpHandlersSection.cs
- MailSettingsSection.cs
- FieldInfo.cs
- SimpleWebHandlerParser.cs
- Drawing.cs
- ProtocolsConfigurationEntry.cs
- IssuedTokenClientElement.cs
- CaseInsensitiveHashCodeProvider.cs