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
- CodeTypeMemberCollection.cs
- ExceptionUtil.cs
- RenameRuleObjectDialog.cs
- DataGridViewCellCancelEventArgs.cs
- StateDesigner.CommentLayoutGlyph.cs
- HtmlToClrEventProxy.cs
- DataTableClearEvent.cs
- TlsnegoTokenProvider.cs
- DbProviderManifest.cs
- IndentedWriter.cs
- FigureParagraph.cs
- StrokeRenderer.cs
- DrawToolTipEventArgs.cs
- AutomationPropertyInfo.cs
- CardSpacePolicyElement.cs
- CodeDOMProvider.cs
- XmlSchemaIdentityConstraint.cs
- Enum.cs
- XPathParser.cs
- ColorKeyFrameCollection.cs
- BaseTemplateCodeDomTreeGenerator.cs
- TextDpi.cs
- TemplateControlCodeDomTreeGenerator.cs
- ClrProviderManifest.cs
- ValidatorCompatibilityHelper.cs
- dtdvalidator.cs
- GuidConverter.cs
- XmlSchemaSimpleContentExtension.cs
- FormViewCommandEventArgs.cs
- WindowsToolbarAsMenu.cs
- CodeSubDirectory.cs
- CharacterMetrics.cs
- RegistryKey.cs
- ConfigurationException.cs
- UpdateExpressionVisitor.cs
- HtmlWindowCollection.cs
- TypeElement.cs
- Invariant.cs
- ResourceCategoryAttribute.cs
- DefaultPrintController.cs
- SerialReceived.cs
- MatrixUtil.cs
- altserialization.cs
- ScrollViewer.cs
- Flowchart.cs
- DigestTraceRecordHelper.cs
- ScriptResourceHandler.cs
- ValidationEventArgs.cs
- TextRenderer.cs
- _AutoWebProxyScriptEngine.cs
- DecimalAnimation.cs
- AuthorizationRuleCollection.cs
- Int32Storage.cs
- NavigationWindow.cs
- Publisher.cs
- Timeline.cs
- GraphicsContainer.cs
- PackageStore.cs
- IOThreadScheduler.cs
- DecimalFormatter.cs
- ServiceCredentials.cs
- BrowsableAttribute.cs
- BinaryObjectInfo.cs
- RectangleF.cs
- CodeTypeDeclaration.cs
- EndpointInfoCollection.cs
- SchemaElementLookUpTable.cs
- SecurityTokenException.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ObjectMaterializedEventArgs.cs
- DesignerSerializerAttribute.cs
- XmlSequenceWriter.cs
- HtmlTableCellCollection.cs
- TemplateManager.cs
- XsltSettings.cs
- GridViewColumnHeaderAutomationPeer.cs
- cookiecollection.cs
- WebConfigurationHostFileChange.cs
- Condition.cs
- FormViewCommandEventArgs.cs
- DataTransferEventArgs.cs
- GlobalItem.cs
- ExpressionBindingCollection.cs
- PackageFilter.cs
- AsymmetricAlgorithm.cs
- TransactionScopeDesigner.cs
- AttributeCollection.cs
- FileDialogCustomPlaces.cs
- mongolianshape.cs
- SafeNativeMethods.cs
- PolyBezierSegment.cs
- ContextStack.cs
- DateTimeSerializationSection.cs
- ToolboxControl.cs
- XamlPoint3DCollectionSerializer.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- ChameleonKey.cs
- unsafenativemethodstextservices.cs
- smtppermission.cs
- JumpPath.cs