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
- SignatureHelper.cs
- FragmentQueryProcessor.cs
- SecurityCriticalDataForSet.cs
- XPathCompileException.cs
- ObjectDataProvider.cs
- ObfuscateAssemblyAttribute.cs
- DriveNotFoundException.cs
- PathGradientBrush.cs
- WebServiceHandler.cs
- TraceEventCache.cs
- ControlParameter.cs
- SqlVisitor.cs
- HttpEncoder.cs
- BuildProvider.cs
- CrossAppDomainChannel.cs
- FieldNameLookup.cs
- String.cs
- AutomationIdentifierGuids.cs
- WebPartDisplayMode.cs
- SafeRightsManagementQueryHandle.cs
- SqlMethods.cs
- OracleInfoMessageEventArgs.cs
- XPathBuilder.cs
- CryptoKeySecurity.cs
- FileNotFoundException.cs
- Duration.cs
- ProviderManager.cs
- ImportContext.cs
- ArraySet.cs
- WebPartConnection.cs
- MSAAWinEventWrap.cs
- ErrorTableItemStyle.cs
- QueryParameter.cs
- Triplet.cs
- IpcChannel.cs
- ImageEditor.cs
- ModifierKeysValueSerializer.cs
- DataListCommandEventArgs.cs
- CharacterHit.cs
- XpsResourceDictionary.cs
- HttpDateParse.cs
- SafeCertificateStore.cs
- MimePart.cs
- GacUtil.cs
- FormsAuthenticationUser.cs
- X509CertificateTrustedIssuerElementCollection.cs
- PropertyToken.cs
- MenuCommandsChangedEventArgs.cs
- DataControlField.cs
- ILGen.cs
- MetafileHeader.cs
- DataObject.cs
- ProcessStartInfo.cs
- StringCollection.cs
- BinaryObjectWriter.cs
- FrameworkContentElement.cs
- XmlnsPrefixAttribute.cs
- ErrorEventArgs.cs
- ThicknessAnimation.cs
- IfJoinedCondition.cs
- MetadataArtifactLoaderFile.cs
- SQLGuid.cs
- ResourcesBuildProvider.cs
- OracleConnectionString.cs
- TransactionFlowElement.cs
- SystemIPAddressInformation.cs
- BuilderPropertyEntry.cs
- RemoteCryptoTokenProvider.cs
- IPPacketInformation.cs
- NodeFunctions.cs
- RepeaterItem.cs
- WizardPanel.cs
- ColumnResizeAdorner.cs
- PresentationTraceSources.cs
- AbstractSvcMapFileLoader.cs
- DataGridViewComboBoxEditingControl.cs
- PageCatalogPart.cs
- TextCompositionEventArgs.cs
- StatusCommandUI.cs
- ReadOnlyState.cs
- Registry.cs
- GridViewColumnCollectionChangedEventArgs.cs
- SafeMILHandleMemoryPressure.cs
- PrintControllerWithStatusDialog.cs
- UnsafeNativeMethods.cs
- CheckBoxField.cs
- DetailsViewRowCollection.cs
- SafeSecurityHelper.cs
- HelloMessage11.cs
- CultureTableRecord.cs
- XmlValidatingReaderImpl.cs
- OdbcHandle.cs
- StateInitializationDesigner.cs
- WSFederationHttpSecurityMode.cs
- InstanceView.cs
- Socket.cs
- PageSetupDialog.cs
- Buffer.cs
- ListViewHitTestInfo.cs
- UTF32Encoding.cs