Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / MS / Internal / Shaping / Item.cs / 1 / Item.cs
//+------------------------------------------------------------------------
//
// Microsoft Windows Client Platform
// Copyright (C) Microsoft Corporation, 2001
//
// File: Item.cs
//
// Contents: Avalon item description & script system
//
// Created: 12-17-2001 Worachai Chaoweeraprasit (wchao)
//
//-----------------------------------------------------------------------
using System;
using System.Collections;
using System.Globalization;
namespace MS.Internal.Shaping
{
///
/// Run sharing the same character properties and glyph variation.
///
///
/// Generated by itemizer and consumed by shaping engine
///
internal struct Item
{
internal Item(
ScriptID script,
ItemFlags flags
)
{
_script = script;
_flags = flags;
_digitCulture = null;
}
public static bool operator ==(
Item left,
Item right
)
{
return left._script == right._script
&& left._flags == right._flags;
}
public static bool operator !=(
Item left,
Item right
)
{
return !(left == right);
}
public override bool Equals(object o)
{
if (o == null)
return false;
if (o is Item)
return this == (Item)o;
return false;
}
public override int GetHashCode()
{
return (int)_script ^ (int)Flags;
}
///
/// Shaping engine script identifier
///
internal ScriptID Script
{
get { return _script; }
set { _script = value; }
}
///
/// Character-based flags for the item
///
internal ItemFlags Flags
{
get { return _flags; }
set { _flags = value; }
}
///
/// Digit culture if it's a ScriptID.Digit item and we're doing number
/// substitution. Otherwise, null.
///
internal CultureInfo DigitCulture
{
get { return _digitCulture; }
set { _digitCulture = value; }
}
private ScriptID _script;
private ItemFlags _flags;
private CultureInfo _digitCulture;
}
[Flags]
internal enum ItemFlags : ushort
{
Default = 0,
///
/// Display glyph using vertical glyph form
///
VerticalForm = 0x0001,
///
/// Display glyph using glyph of the mirrored code point form
///
PairMirrorForm = 0x0002,
///
/// Display glyph using mirrored glyph form
///
SingleMirrorForm = 0x0004,
///
/// The OR of both variants
///
GlyphVariant = VerticalForm,
///
/// Item displays sideway to the baseline
///
DisplaySideway = 0x0008,
///
/// Item containing combining marks that need precomposition
///
HasCombiningMark = 0x0010,
///
/// Item containing extended character
///
HasExtendedCharacter = 0x0020,
///
/// Set if the previous item ended with ZWJ
///
LeadingJoin = 0x0040,
}
}
// 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, 2001
//
// File: Item.cs
//
// Contents: Avalon item description & script system
//
// Created: 12-17-2001 Worachai Chaoweeraprasit (wchao)
//
//-----------------------------------------------------------------------
using System;
using System.Collections;
using System.Globalization;
namespace MS.Internal.Shaping
{
///
/// Run sharing the same character properties and glyph variation.
///
///
/// Generated by itemizer and consumed by shaping engine
///
internal struct Item
{
internal Item(
ScriptID script,
ItemFlags flags
)
{
_script = script;
_flags = flags;
_digitCulture = null;
}
public static bool operator ==(
Item left,
Item right
)
{
return left._script == right._script
&& left._flags == right._flags;
}
public static bool operator !=(
Item left,
Item right
)
{
return !(left == right);
}
public override bool Equals(object o)
{
if (o == null)
return false;
if (o is Item)
return this == (Item)o;
return false;
}
public override int GetHashCode()
{
return (int)_script ^ (int)Flags;
}
///
/// Shaping engine script identifier
///
internal ScriptID Script
{
get { return _script; }
set { _script = value; }
}
///
/// Character-based flags for the item
///
internal ItemFlags Flags
{
get { return _flags; }
set { _flags = value; }
}
///
/// Digit culture if it's a ScriptID.Digit item and we're doing number
/// substitution. Otherwise, null.
///
internal CultureInfo DigitCulture
{
get { return _digitCulture; }
set { _digitCulture = value; }
}
private ScriptID _script;
private ItemFlags _flags;
private CultureInfo _digitCulture;
}
[Flags]
internal enum ItemFlags : ushort
{
Default = 0,
///
/// Display glyph using vertical glyph form
///
VerticalForm = 0x0001,
///
/// Display glyph using glyph of the mirrored code point form
///
PairMirrorForm = 0x0002,
///
/// Display glyph using mirrored glyph form
///
SingleMirrorForm = 0x0004,
///
/// The OR of both variants
///
GlyphVariant = VerticalForm,
///
/// Item displays sideway to the baseline
///
DisplaySideway = 0x0008,
///
/// Item containing combining marks that need precomposition
///
HasCombiningMark = 0x0010,
///
/// Item containing extended character
///
HasExtendedCharacter = 0x0020,
///
/// Set if the previous item ended with ZWJ
///
LeadingJoin = 0x0040,
}
}
// 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
- ItemCollection.cs
- CryptographicAttribute.cs
- DoubleConverter.cs
- ReadOnlyCollectionBase.cs
- BuilderInfo.cs
- _LocalDataStoreMgr.cs
- BindingSource.cs
- AutomationProperty.cs
- XPathParser.cs
- DrawingContextWalker.cs
- CharKeyFrameCollection.cs
- RecognizedPhrase.cs
- SelectionProviderWrapper.cs
- keycontainerpermission.cs
- Drawing.cs
- ImageListStreamer.cs
- SimpleParser.cs
- FocusManager.cs
- ExecutionEngineException.cs
- DataSourceUtil.cs
- DateTimeConstantAttribute.cs
- SecurityPermission.cs
- RightNameExpirationInfoPair.cs
- arabicshape.cs
- WSSecureConversationDec2005.cs
- Thumb.cs
- XmlnsCompatibleWithAttribute.cs
- EntitySetBaseCollection.cs
- ProfessionalColors.cs
- MissingFieldException.cs
- TableLayoutPanelCellPosition.cs
- TextEditorMouse.cs
- ChildTable.cs
- UpdateProgress.cs
- SubMenuStyleCollection.cs
- XmlUTF8TextWriter.cs
- CombinedGeometry.cs
- SizeLimitedCache.cs
- SafeFileMappingHandle.cs
- SystemDiagnosticsSection.cs
- HttpApplicationFactory.cs
- UiaCoreTypesApi.cs
- safex509handles.cs
- WebPartConnectionsCancelEventArgs.cs
- RemotingException.cs
- EqualityComparer.cs
- CallTemplateAction.cs
- BindStream.cs
- Helpers.cs
- XsdCachingReader.cs
- ThrowHelper.cs
- LinqDataSourceDisposeEventArgs.cs
- EndpointIdentityExtension.cs
- ObservableCollection.cs
- PriorityBinding.cs
- DES.cs
- QuinticEase.cs
- XmlLoader.cs
- TabRenderer.cs
- MultiPageTextView.cs
- LinkClickEvent.cs
- CancellationScope.cs
- assemblycache.cs
- MdiWindowListItemConverter.cs
- FileClassifier.cs
- ReflectionUtil.cs
- QuotedPairReader.cs
- CellPartitioner.cs
- MissingFieldException.cs
- XmlDataProvider.cs
- SessionState.cs
- WebRequestModulesSection.cs
- DataGridRelationshipRow.cs
- KeyMatchBuilder.cs
- Roles.cs
- RuleSettings.cs
- RegexCapture.cs
- TdsParserStaticMethods.cs
- _ProxyRegBlob.cs
- Perspective.cs
- isolationinterop.cs
- baseaxisquery.cs
- CorrelationResolver.cs
- PageRanges.cs
- _RequestCacheProtocol.cs
- OpenTypeCommon.cs
- PackagePartCollection.cs
- DescendantQuery.cs
- AmbientValueAttribute.cs
- AttachedProperty.cs
- Pointer.cs
- Wizard.cs
- SettingsBindableAttribute.cs
- lengthconverter.cs
- Int64KeyFrameCollection.cs
- DesignSurfaceServiceContainer.cs
- ListViewVirtualItemsSelectionRangeChangedEvent.cs
- WorkflowTransactionOptions.cs
- WindowsListViewGroup.cs
- TCPListener.cs