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
- MouseEventArgs.cs
- ACE.cs
- Barrier.cs
- Formatter.cs
- IItemContainerGenerator.cs
- DateTime.cs
- Viewport3DVisual.cs
- Marshal.cs
- DateTimeConverter.cs
- UserControlBuildProvider.cs
- Trustee.cs
- followingsibling.cs
- FontDriver.cs
- Exception.cs
- Monitor.cs
- PathTooLongException.cs
- ClickablePoint.cs
- EntityTypeEmitter.cs
- InvalidCastException.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- HttpProfileBase.cs
- Configuration.cs
- OutputCacheSettings.cs
- StreamingContext.cs
- Win32.cs
- ExtenderControl.cs
- FreezableDefaultValueFactory.cs
- ProxyElement.cs
- SoapFaultCodes.cs
- Pick.cs
- DSACryptoServiceProvider.cs
- UserUseLicenseDictionaryLoader.cs
- ArrayConverter.cs
- ValidationHelper.cs
- Pen.cs
- JsonFormatGeneratorStatics.cs
- HtmlPhoneCallAdapter.cs
- Splitter.cs
- JobInputBins.cs
- KeyGesture.cs
- ExpressionParser.cs
- MultiTrigger.cs
- OperatingSystem.cs
- InternalBufferOverflowException.cs
- DataTrigger.cs
- ZeroOpNode.cs
- RangeBase.cs
- TableCell.cs
- NullRuntimeConfig.cs
- RuleInfoComparer.cs
- MouseWheelEventArgs.cs
- Byte.cs
- ScrollItemPattern.cs
- ClassicBorderDecorator.cs
- Byte.cs
- DiscoveryMessageSequence.cs
- ReachVisualSerializerAsync.cs
- Transform3D.cs
- CrossContextChannel.cs
- XhtmlBasicLinkAdapter.cs
- StaticResourceExtension.cs
- ObsoleteAttribute.cs
- TargetParameterCountException.cs
- BrowserInteropHelper.cs
- XmlDictionaryWriter.cs
- DbProviderFactoriesConfigurationHandler.cs
- IdentitySection.cs
- IntegerCollectionEditor.cs
- ProvidePropertyAttribute.cs
- UTF7Encoding.cs
- DefaultObjectMappingItemCollection.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- ChangePasswordDesigner.cs
- Coordinator.cs
- TypeSystemHelpers.cs
- XmlAttributeOverrides.cs
- SHA256Managed.cs
- QilXmlReader.cs
- DbDataAdapter.cs
- XPathChildIterator.cs
- ScrollProviderWrapper.cs
- AssemblyInfo.cs
- DigestComparer.cs
- RepeatButtonAutomationPeer.cs
- EnvelopedSignatureTransform.cs
- CollectionBuilder.cs
- CompositeScriptReferenceEventArgs.cs
- ServerValidateEventArgs.cs
- ProxyWebPartConnectionCollection.cs
- HttpStaticObjectsCollectionBase.cs
- WriteableOnDemandStream.cs
- XhtmlBasicSelectionListAdapter.cs
- InOutArgument.cs
- HandleScope.cs
- WebDisplayNameAttribute.cs
- RtfToken.cs
- XmlWrappingWriter.cs
- SafeLocalMemHandle.cs
- EventManager.cs
- SettingsPropertyValue.cs