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
- _AutoWebProxyScriptWrapper.cs
- SoapIncludeAttribute.cs
- _DomainName.cs
- DrawingImage.cs
- SafeFindHandle.cs
- ListBox.cs
- BamlCollectionHolder.cs
- CatalogPartChrome.cs
- HttpCachePolicy.cs
- Literal.cs
- FlowDocumentView.cs
- ServiceAppDomainAssociationProvider.cs
- RequestCacheValidator.cs
- ProxyManager.cs
- SapiInterop.cs
- XmlValidatingReaderImpl.cs
- SecurityContext.cs
- ColumnWidthChangingEvent.cs
- StaticResourceExtension.cs
- Pen.cs
- PointAnimationClockResource.cs
- _DisconnectOverlappedAsyncResult.cs
- CodeDOMProvider.cs
- dsa.cs
- StackSpiller.Temps.cs
- QuaternionAnimation.cs
- InvalidFilterCriteriaException.cs
- _ConnectStream.cs
- xmlfixedPageInfo.cs
- SecurityKeyEntropyMode.cs
- SessionStateContainer.cs
- HtmlElement.cs
- FileDetails.cs
- GridViewSelectEventArgs.cs
- Compiler.cs
- dtdvalidator.cs
- Instrumentation.cs
- XmlSchemaCollection.cs
- Rect.cs
- ScriptControlManager.cs
- ListViewTableRow.cs
- ControlType.cs
- CapacityStreamGeometryContext.cs
- Int32AnimationBase.cs
- HttpCookieCollection.cs
- _ListenerResponseStream.cs
- FrugalList.cs
- CellRelation.cs
- DataExpression.cs
- WindowsFont.cs
- ImageMetadata.cs
- ExtendedPropertyInfo.cs
- DataColumn.cs
- SQLCharsStorage.cs
- IssuedTokenParametersElement.cs
- PromptStyle.cs
- VectorAnimationUsingKeyFrames.cs
- CompositeFontFamily.cs
- TextDocumentView.cs
- CodeDOMProvider.cs
- EntityContainerEmitter.cs
- BaseConfigurationRecord.cs
- ScriptingScriptResourceHandlerSection.cs
- OracleEncoding.cs
- CreateCardRequest.cs
- EntityContainerEntitySetDefiningQuery.cs
- ControlValuePropertyAttribute.cs
- CellQuery.cs
- BitStack.cs
- ReflectionHelper.cs
- MdiWindowListItemConverter.cs
- IsolatedStorageException.cs
- BitmapEffectDrawing.cs
- NumberFormatInfo.cs
- DateRangeEvent.cs
- IOThreadTimer.cs
- GroupQuery.cs
- ComboBox.cs
- TextOnlyOutput.cs
- LowerCaseStringConverter.cs
- StateRuntime.cs
- SortFieldComparer.cs
- SourceFileInfo.cs
- TraceListener.cs
- FastEncoder.cs
- MetadataSource.cs
- SecurityTokenTypes.cs
- UserControl.cs
- XmlWriterSettings.cs
- EntityDataSourceValidationException.cs
- DesignerAttribute.cs
- FormattedText.cs
- AssemblyContextControlItem.cs
- SHA1CryptoServiceProvider.cs
- X509ThumbprintKeyIdentifierClause.cs
- SelectedGridItemChangedEvent.cs
- Switch.cs
- CodePropertyReferenceExpression.cs
- M3DUtil.cs
- LoginUtil.cs