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 / 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
- TypeUsage.cs
- GuidTagList.cs
- BaseTreeIterator.cs
- XamlTreeBuilder.cs
- ReflectionServiceProvider.cs
- XmlCharCheckingWriter.cs
- CodeMemberField.cs
- DependencyPropertyValueSerializer.cs
- EntityModelSchemaGenerator.cs
- ThicknessAnimationUsingKeyFrames.cs
- XmlHierarchicalDataSourceView.cs
- BaseDataBoundControl.cs
- BaseTemplateCodeDomTreeGenerator.cs
- StrokeIntersection.cs
- ExceptionTranslationTable.cs
- DecoderExceptionFallback.cs
- Message.cs
- GPRECT.cs
- SiteIdentityPermission.cs
- StringComparer.cs
- TraceFilter.cs
- ExecutionContext.cs
- Column.cs
- AutomationPropertyInfo.cs
- QuadraticBezierSegment.cs
- TdsParserStaticMethods.cs
- ScaleTransform.cs
- HttpHandler.cs
- StatusBarItem.cs
- CommandHelper.cs
- FtpWebResponse.cs
- EventBookmark.cs
- SqlCacheDependencyDatabase.cs
- ConfigurationSchemaErrors.cs
- AnnotationAdorner.cs
- AnchoredBlock.cs
- GeneralTransform3DGroup.cs
- SoapServerMethod.cs
- TextLineBreak.cs
- NativeRightsManagementAPIsStructures.cs
- ToolTipAutomationPeer.cs
- BatchServiceHost.cs
- GridItemPatternIdentifiers.cs
- BamlBinaryReader.cs
- SmiMetaData.cs
- RtfNavigator.cs
- DefaultValueConverter.cs
- TableCell.cs
- QuadraticBezierSegment.cs
- DataGridViewRowPrePaintEventArgs.cs
- ContentFileHelper.cs
- SyndicationItemFormatter.cs
- SettingsPropertyWrongTypeException.cs
- ForceCopyBuildProvider.cs
- templategroup.cs
- ObjectSecurity.cs
- ExpressionVisitor.cs
- TypedReference.cs
- DbConnectionPoolIdentity.cs
- PeerPresenceInfo.cs
- TextTreeInsertElementUndoUnit.cs
- UnregisterInfo.cs
- UserInitiatedNavigationPermission.cs
- RPIdentityRequirement.cs
- SchemaTableColumn.cs
- Underline.cs
- MetadataCollection.cs
- BindingNavigator.cs
- PenLineCapValidation.cs
- TagPrefixCollection.cs
- DbParameterCollection.cs
- DataControlFieldHeaderCell.cs
- GPPOINTF.cs
- TextReader.cs
- SynchronizedInputPattern.cs
- GregorianCalendar.cs
- FileSystemInfo.cs
- SourceFileBuildProvider.cs
- processwaithandle.cs
- SynchronizingStream.cs
- ImmutableObjectAttribute.cs
- Mutex.cs
- FormViewPagerRow.cs
- HTTPNotFoundHandler.cs
- XmlSchemaImport.cs
- TrackBarDesigner.cs
- OciHandle.cs
- StoreContentChangedEventArgs.cs
- documentsequencetextview.cs
- CssClassPropertyAttribute.cs
- _HeaderInfoTable.cs
- ReferencedCollectionType.cs
- ContainerUtilities.cs
- MediaContext.cs
- CheckBoxPopupAdapter.cs
- PartBasedPackageProperties.cs
- DataGridViewRowEventArgs.cs
- TextEditorParagraphs.cs
- WindowsFormsDesignerOptionService.cs
- SatelliteContractVersionAttribute.cs