Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / MS / Internal / Shaping / CharacterShapingProperties.cs / 1 / CharacterShapingProperties.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: CharacterShapingProperties class // // History: // 10/26/2004: Garyyang Created the file // 1/25/2004: garyyang Move it to internal namespace // //--------------------------------------------------------------------------- using System.Runtime.InteropServices; namespace MS.Internal.Shaping { ////// Properties per character /// [StructLayout(LayoutKind.Sequential)] internal struct CharacterShapingProperties { ////// Constructor /// /// reserved bits used by shaping engine /// flag indicating whether the code point can be glyphed alone internal CharacterShapingProperties(byte engineReserved, bool canGlyphAlone) { _value = (canGlyphAlone ? CanGlyphAloneFlag : (ushort) 0); _value |= engineReserved; } ////// Get or Set CanGlyphAlone flag for the charactrer /// ///internal bool CanGlyphAlone { get { return (_value & CanGlyphAloneFlag) != 0; } set { if (value) { _value |= CanGlyphAloneFlag; } else { _value &= (CanGlyphAloneFlag ^ 0xFFFF); } } } /// /// Get or Set bits reserved for shaping engine use /// ///internal byte EngineReserved { get { return (byte)(_value & EngineReservedValueMask); } set { _value = (ushort)((_value & (EngineReservedValueMask ^ 0xFFFF)) | value); } } /// /// Compares two CharacterShapingProperties for equality. /// ///Returns true if the arguments have identical properties, false if not. public static bool operator ==( CharacterShapingProperties left, CharacterShapingProperties right) { return left._value == right._value; } ////// Compares two CharacterShapingProperties for inequality. /// ///Returns true if the arguments are not equal, false if they are equal. public static bool operator !=( CharacterShapingProperties left, CharacterShapingProperties right) { return !(left == right); } ////// Compares the specified object with this. /// ///Returns true if the specified object is a CharacterShapingProperties with the same /// value as this object. public override bool Equals(object o) { if (o != null && o is CharacterShapingProperties) { return (CharacterShapingProperties)o == this; } else { return false; } } ////// Returns a hash code based on the property flags. /// public override int GetHashCode() { return _value; } private ushort _value; // CanGlyphAloneFlag is store at the 9th bit private const ushort CanGlyphAloneFlag = 0x0100; private const ushort EngineReservedValueMask = 0x00FF; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: CharacterShapingProperties class // // History: // 10/26/2004: Garyyang Created the file // 1/25/2004: garyyang Move it to internal namespace // //--------------------------------------------------------------------------- using System.Runtime.InteropServices; namespace MS.Internal.Shaping { ////// Properties per character /// [StructLayout(LayoutKind.Sequential)] internal struct CharacterShapingProperties { ////// Constructor /// /// reserved bits used by shaping engine /// flag indicating whether the code point can be glyphed alone internal CharacterShapingProperties(byte engineReserved, bool canGlyphAlone) { _value = (canGlyphAlone ? CanGlyphAloneFlag : (ushort) 0); _value |= engineReserved; } ////// Get or Set CanGlyphAlone flag for the charactrer /// ///internal bool CanGlyphAlone { get { return (_value & CanGlyphAloneFlag) != 0; } set { if (value) { _value |= CanGlyphAloneFlag; } else { _value &= (CanGlyphAloneFlag ^ 0xFFFF); } } } /// /// Get or Set bits reserved for shaping engine use /// ///internal byte EngineReserved { get { return (byte)(_value & EngineReservedValueMask); } set { _value = (ushort)((_value & (EngineReservedValueMask ^ 0xFFFF)) | value); } } /// /// Compares two CharacterShapingProperties for equality. /// ///Returns true if the arguments have identical properties, false if not. public static bool operator ==( CharacterShapingProperties left, CharacterShapingProperties right) { return left._value == right._value; } ////// Compares two CharacterShapingProperties for inequality. /// ///Returns true if the arguments are not equal, false if they are equal. public static bool operator !=( CharacterShapingProperties left, CharacterShapingProperties right) { return !(left == right); } ////// Compares the specified object with this. /// ///Returns true if the specified object is a CharacterShapingProperties with the same /// value as this object. public override bool Equals(object o) { if (o != null && o is CharacterShapingProperties) { return (CharacterShapingProperties)o == this; } else { return false; } } ////// Returns a hash code based on the property flags. /// public override int GetHashCode() { return _value; } private ushort _value; // CanGlyphAloneFlag is store at the 9th bit private const ushort CanGlyphAloneFlag = 0x0100; private const ushort EngineReservedValueMask = 0x00FF; } } // 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
- DisplayInformation.cs
- XamlFilter.cs
- DBDataPermissionAttribute.cs
- VisualTreeHelper.cs
- XmlSerializerFactory.cs
- SqlBooleanMismatchVisitor.cs
- TraceSection.cs
- ThaiBuddhistCalendar.cs
- AssemblyResourceLoader.cs
- COM2Properties.cs
- ForEachAction.cs
- HttpConfigurationContext.cs
- SmiMetaData.cs
- XamlVector3DCollectionSerializer.cs
- RegexCompiler.cs
- EdmScalarPropertyAttribute.cs
- ErrorTolerantObjectWriter.cs
- Action.cs
- StaticExtensionConverter.cs
- SqlParameter.cs
- ClientSettingsStore.cs
- EntityWithChangeTrackerStrategy.cs
- Stack.cs
- ScrollEvent.cs
- PagesSection.cs
- GeneralTransform3DCollection.cs
- TextPenaltyModule.cs
- securestring.cs
- TransformerTypeCollection.cs
- PageTheme.cs
- ListViewItem.cs
- LayoutEngine.cs
- WriteTimeStream.cs
- ConnectionConsumerAttribute.cs
- AssociatedControlConverter.cs
- ToolboxBitmapAttribute.cs
- SqlAliaser.cs
- PropertyFilterAttribute.cs
- FunctionDescription.cs
- RegexCompilationInfo.cs
- BooleanStorage.cs
- ConnectorSelectionGlyph.cs
- LinkButton.cs
- WindowsNonControl.cs
- CSharpCodeProvider.cs
- ValueType.cs
- ManifestResourceInfo.cs
- WebBrowserUriTypeConverter.cs
- CollectionViewProxy.cs
- Permission.cs
- TreeNodeCollection.cs
- MobileUserControlDesigner.cs
- XmlSchemaDocumentation.cs
- StrongNamePublicKeyBlob.cs
- DataRowCollection.cs
- XsltInput.cs
- ActivityDesigner.cs
- FolderBrowserDialog.cs
- Tile.cs
- StyleBamlTreeBuilder.cs
- UnsafeNativeMethodsTablet.cs
- ComponentSerializationService.cs
- EncoderFallback.cs
- HotSpotCollection.cs
- MarkupCompiler.cs
- TextEditorTables.cs
- SchemaDeclBase.cs
- ValidateNames.cs
- KeyNotFoundException.cs
- NetPeerTcpBindingElement.cs
- Clock.cs
- Object.cs
- StreamInfo.cs
- SecurityUtils.cs
- FormClosingEvent.cs
- TextParaClient.cs
- MatrixKeyFrameCollection.cs
- ApplicationDirectoryMembershipCondition.cs
- CodeDirectionExpression.cs
- WorkflowMessageEventHandler.cs
- cryptoapiTransform.cs
- AttributeData.cs
- CoTaskMemHandle.cs
- XmlLangPropertyAttribute.cs
- Listbox.cs
- FixedSOMElement.cs
- UrlParameterWriter.cs
- ThaiBuddhistCalendar.cs
- RoutedPropertyChangedEventArgs.cs
- BindingExpressionBase.cs
- SmtpNegotiateAuthenticationModule.cs
- Label.cs
- Polyline.cs
- PropertyInfoSet.cs
- _AcceptOverlappedAsyncResult.cs
- FactoryMaker.cs
- EntityDataSourceEntityTypeFilterItem.cs
- FastPropertyAccessor.cs
- ModelEditingScope.cs
- SerializationException.cs