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
- ComponentResourceKey.cs
- LedgerEntry.cs
- WhiteSpaceTrimStringConverter.cs
- WebPartHeaderCloseVerb.cs
- IndexedEnumerable.cs
- LinqDataSourceStatusEventArgs.cs
- NonSerializedAttribute.cs
- StorageEntityContainerMapping.cs
- SdlChannelSink.cs
- ToolStripGrip.cs
- OdbcTransaction.cs
- HtmlContainerControl.cs
- XmlSortKeyAccumulator.cs
- LambdaCompiler.cs
- EndOfStreamException.cs
- ListViewSelectEventArgs.cs
- AVElementHelper.cs
- GenericUriParser.cs
- PageSettings.cs
- MainMenu.cs
- WorkflowControlEndpoint.cs
- CollectionType.cs
- CriticalHandle.cs
- FileNotFoundException.cs
- SqlError.cs
- TraceUtils.cs
- WebPartEditorCancelVerb.cs
- ActionItem.cs
- Compiler.cs
- TypeSystem.cs
- InvariantComparer.cs
- HeaderUtility.cs
- ExecutionEngineException.cs
- WSHttpBindingBase.cs
- Rect3DConverter.cs
- formatter.cs
- SplitContainer.cs
- SecondaryIndexList.cs
- Viewport3DVisual.cs
- CompilationRelaxations.cs
- SR.cs
- WebPartZone.cs
- DecryptRequest.cs
- SapiGrammar.cs
- DaylightTime.cs
- AdapterDictionary.cs
- DebuggerService.cs
- ToolboxItemCollection.cs
- SubqueryTrackingVisitor.cs
- XmlSchemaAny.cs
- LocalClientSecuritySettingsElement.cs
- Brushes.cs
- DbCommandTree.cs
- WindowHideOrCloseTracker.cs
- CancellationTokenRegistration.cs
- SchemaImporterExtensionElementCollection.cs
- TypeUnloadedException.cs
- SpeechDetectedEventArgs.cs
- WindowShowOrOpenTracker.cs
- WorkflowApplicationEventArgs.cs
- DataGridRowClipboardEventArgs.cs
- MessageHeaderException.cs
- PeerCustomResolverElement.cs
- TextSchema.cs
- ObfuscateAssemblyAttribute.cs
- CriticalFinalizerObject.cs
- PropertySourceInfo.cs
- XhtmlBasicCommandAdapter.cs
- COM2TypeInfoProcessor.cs
- XmlTextReader.cs
- RecoverInstanceLocksCommand.cs
- Model3DGroup.cs
- FileDialog.cs
- CommandValueSerializer.cs
- MainMenu.cs
- ApplicationId.cs
- PresentationUIStyleResources.cs
- ListBox.cs
- TemplateKeyConverter.cs
- RegexWorker.cs
- MediaScriptCommandRoutedEventArgs.cs
- ListDictionaryInternal.cs
- RegistryDataKey.cs
- ManagementEventWatcher.cs
- PrtTicket_Base.cs
- AssemblyContextControlItem.cs
- ExpressionHelper.cs
- TextEditorLists.cs
- DataListGeneralPage.cs
- AppDomainAttributes.cs
- RenderingEventArgs.cs
- Compiler.cs
- SchemaCollectionPreprocessor.cs
- ImportCatalogPart.cs
- UnwrappedTypesXmlSerializerManager.cs
- ToolStripSeparator.cs
- XmlLinkedNode.cs
- RegularExpressionValidator.cs
- SafeNativeMethods.cs
- CatalogZoneBase.cs