Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- WebPartVerbCollection.cs
- CollectionViewSource.cs
- DuplexChannel.cs
- BitmapEffectInputData.cs
- SecurityPermission.cs
- SetStateEventArgs.cs
- ViewStateModeByIdAttribute.cs
- SQLCharsStorage.cs
- CalculatedColumn.cs
- StreamGeometry.cs
- RealProxy.cs
- InternalPolicyElement.cs
- XmlSchemaAnnotated.cs
- BamlLocalizer.cs
- RawContentTypeMapper.cs
- ImageList.cs
- ByteConverter.cs
- ContainerVisual.cs
- Int16AnimationUsingKeyFrames.cs
- CodeDirectionExpression.cs
- LinkConverter.cs
- HostedTcpTransportManager.cs
- RowToFieldTransformer.cs
- DataMisalignedException.cs
- RegexReplacement.cs
- RichTextBoxDesigner.cs
- DataGridViewCellCollection.cs
- ContextMarshalException.cs
- SafeLibraryHandle.cs
- SerializationAttributes.cs
- InfoCardRSAOAEPKeyExchangeFormatter.cs
- CommunicationObjectAbortedException.cs
- MethodInfo.cs
- PermissionRequestEvidence.cs
- EncoderBestFitFallback.cs
- Button.cs
- XmlNavigatorStack.cs
- ListItemCollection.cs
- CodeNamespaceCollection.cs
- LZCodec.cs
- PageStatePersister.cs
- EasingFunctionBase.cs
- StateRuntime.cs
- ImpersonateTokenRef.cs
- ControlBuilder.cs
- PackageRelationshipCollection.cs
- VectorConverter.cs
- EditorPartChrome.cs
- TitleStyle.cs
- VirtualDirectoryMapping.cs
- BaseCodePageEncoding.cs
- ContextMenuStrip.cs
- Border.cs
- DescendantBaseQuery.cs
- SQLBytes.cs
- RegexParser.cs
- XmlCharType.cs
- ManipulationDevice.cs
- SafeReversePInvokeHandle.cs
- WebConfigurationHostFileChange.cs
- KeyedQueue.cs
- IUnknownConstantAttribute.cs
- PlanCompilerUtil.cs
- ProxyGenerator.cs
- BooleanKeyFrameCollection.cs
- JsonFormatGeneratorStatics.cs
- BrushValueSerializer.cs
- RichTextBoxDesigner.cs
- TextEditorDragDrop.cs
- QilReplaceVisitor.cs
- SimpleWorkerRequest.cs
- AdRotator.cs
- ContentElement.cs
- StatusBarItemAutomationPeer.cs
- LinqDataView.cs
- HashRepartitionEnumerator.cs
- SystemSounds.cs
- DecimalConstantAttribute.cs
- XmlSchema.cs
- PointConverter.cs
- OleDbConnectionFactory.cs
- WebReferencesBuildProvider.cs
- WebConfigurationManager.cs
- HtmlInputCheckBox.cs
- DataBoundControlAdapter.cs
- EditingScope.cs
- Freezable.cs
- DefaultValueConverter.cs
- VectorValueSerializer.cs
- ExpressionBuilder.cs
- ChildTable.cs
- HttpRawResponse.cs
- WsdlBuildProvider.cs
- SimpleExpression.cs
- OuterGlowBitmapEffect.cs
- ViewGenResults.cs
- TextEffectCollection.cs
- SqlVersion.cs
- CmsInterop.cs
- PasswordRecovery.cs