Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / textformatting / CharacterHit.cs / 1305600 / CharacterHit.cs
//---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // Description: The CharacterHit structure represents information about a character hit // within a glyph run - the index of the first character that got hit and the information // about leading or trailing edge. // // See spec at http://team/sites/Avalon/Specs/Glyph%20Run%20hit%20testing%20and%20caret%20placement%20API.htm#CharacterHit // // // History: // 11/30/2004 : mleonov - Created // //--------------------------------------------------------------------------- #region Using directives using System; #endregion namespace System.Windows.Media.TextFormatting { ////// The CharacterHit structure represents information about a character hit within a glyph run /// - the index of the first character that got hit and the information about leading or trailing edge. /// public struct CharacterHit : IEquatable{ /// /// Constructs a new CharacterHit structure. /// /// Index of the first character that got hit. /// In case of leading edge this value is 0. /// In case of trailing edge this value is the number of codepoints until the next valid caret position. public CharacterHit(int firstCharacterIndex, int trailingLength) { _firstCharacterIndex = firstCharacterIndex; _trailingLength = trailingLength; } ////// Index of the first character that got hit. /// public int FirstCharacterIndex { get { return _firstCharacterIndex; } } ////// In case of leading edge this value is 0. /// In case of trailing edge this value is the number of codepoints until the next valid caret position. /// public int TrailingLength { get { return _trailingLength; } } ////// Checks whether two character hit objects are equal. /// /// First object to compare. /// Second object to compare. ///Returns true when the values of FirstCharacterIndex and TrailingLength are equal for both objects, /// and false otherwise. public static bool operator==(CharacterHit left, CharacterHit right) { return left._firstCharacterIndex == right._firstCharacterIndex && left._trailingLength == right._trailingLength; } ////// Checks whether two character hit objects are not equal. /// /// First object to compare. /// Second object to compare. ///Returns false when the values of FirstCharacterIndex and TrailingLength are equal for both objects, /// and true otherwise. public static bool operator!=(CharacterHit left, CharacterHit right) { return !(left == right); } ////// Checks whether an object is equal to another character hit object. /// /// CharacterHit object to compare with. ///Returns true when the object is equal to the input object, /// and false otherwise. public bool Equals(CharacterHit obj) { return this == obj; } ////// Checks whether an object is equal to another character hit object. /// /// CharacterHit object to compare with. ///Returns true when the object is equal to the input object, /// and false otherwise. public override bool Equals(object obj) { if (!(obj is CharacterHit)) return false; return this == (CharacterHit)obj; } ////// Compute hash code for this object. /// ///A 32-bit signed integer hash code. public override int GetHashCode() { return _firstCharacterIndex.GetHashCode() ^ _trailingLength.GetHashCode(); } private int _firstCharacterIndex; private int _trailingLength; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // Description: The CharacterHit structure represents information about a character hit // within a glyph run - the index of the first character that got hit and the information // about leading or trailing edge. // // See spec at http://team/sites/Avalon/Specs/Glyph%20Run%20hit%20testing%20and%20caret%20placement%20API.htm#CharacterHit // // // History: // 11/30/2004 : mleonov - Created // //--------------------------------------------------------------------------- #region Using directives using System; #endregion namespace System.Windows.Media.TextFormatting { ////// The CharacterHit structure represents information about a character hit within a glyph run /// - the index of the first character that got hit and the information about leading or trailing edge. /// public struct CharacterHit : IEquatable{ /// /// Constructs a new CharacterHit structure. /// /// Index of the first character that got hit. /// In case of leading edge this value is 0. /// In case of trailing edge this value is the number of codepoints until the next valid caret position. public CharacterHit(int firstCharacterIndex, int trailingLength) { _firstCharacterIndex = firstCharacterIndex; _trailingLength = trailingLength; } ////// Index of the first character that got hit. /// public int FirstCharacterIndex { get { return _firstCharacterIndex; } } ////// In case of leading edge this value is 0. /// In case of trailing edge this value is the number of codepoints until the next valid caret position. /// public int TrailingLength { get { return _trailingLength; } } ////// Checks whether two character hit objects are equal. /// /// First object to compare. /// Second object to compare. ///Returns true when the values of FirstCharacterIndex and TrailingLength are equal for both objects, /// and false otherwise. public static bool operator==(CharacterHit left, CharacterHit right) { return left._firstCharacterIndex == right._firstCharacterIndex && left._trailingLength == right._trailingLength; } ////// Checks whether two character hit objects are not equal. /// /// First object to compare. /// Second object to compare. ///Returns false when the values of FirstCharacterIndex and TrailingLength are equal for both objects, /// and true otherwise. public static bool operator!=(CharacterHit left, CharacterHit right) { return !(left == right); } ////// Checks whether an object is equal to another character hit object. /// /// CharacterHit object to compare with. ///Returns true when the object is equal to the input object, /// and false otherwise. public bool Equals(CharacterHit obj) { return this == obj; } ////// Checks whether an object is equal to another character hit object. /// /// CharacterHit object to compare with. ///Returns true when the object is equal to the input object, /// and false otherwise. public override bool Equals(object obj) { if (!(obj is CharacterHit)) return false; return this == (CharacterHit)obj; } ////// Compute hash code for this object. /// ///A 32-bit signed integer hash code. public override int GetHashCode() { return _firstCharacterIndex.GetHashCode() ^ _trailingLength.GetHashCode(); } private int _firstCharacterIndex; private int _trailingLength; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Rect3DConverter.cs
- LinkClickEvent.cs
- ContentFilePart.cs
- HttpCachePolicyWrapper.cs
- TypeListConverter.cs
- VersionPair.cs
- DateTimeOffsetAdapter.cs
- DataTableReaderListener.cs
- GlobalEventManager.cs
- FrameworkElementFactoryMarkupObject.cs
- ServerValidateEventArgs.cs
- Thread.cs
- PageCache.cs
- Msec.cs
- CredentialCache.cs
- SystemResourceKey.cs
- DefaultDiscoveryServiceExtension.cs
- ProxyGenerator.cs
- XmlConvert.cs
- PathHelper.cs
- XamlStream.cs
- HyperLinkStyle.cs
- x509store.cs
- EventLogPermission.cs
- LicenseContext.cs
- Hyperlink.cs
- RegisteredScript.cs
- XamlTypeMapper.cs
- CheckBoxList.cs
- PinnedBufferMemoryStream.cs
- ConfigurationUtility.cs
- ValueUtilsSmi.cs
- LinqExpressionNormalizer.cs
- DWriteFactory.cs
- HMACSHA256.cs
- DataControlPagerLinkButton.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- LambdaCompiler.Binary.cs
- ObjectContext.cs
- AssemblyAttributes.cs
- DataStreams.cs
- InvariantComparer.cs
- NominalTypeEliminator.cs
- IndexedString.cs
- DataConnectionHelper.cs
- InplaceBitmapMetadataWriter.cs
- CapabilitiesUse.cs
- HttpListener.cs
- XmlSchemaParticle.cs
- CacheChildrenQuery.cs
- PtsContext.cs
- Screen.cs
- XmlRawWriter.cs
- ScriptResourceHandler.cs
- Stroke.cs
- WindowsStartMenu.cs
- WebPartEditVerb.cs
- Menu.cs
- XmlIlVisitor.cs
- WindowsScroll.cs
- DispatcherBuilder.cs
- SecurityProtocolCorrelationState.cs
- HttpWebResponse.cs
- _Win32.cs
- NavigationPropertySingletonExpression.cs
- InkCollectionBehavior.cs
- FloaterBaseParaClient.cs
- CreatingCookieEventArgs.cs
- ErrorWrapper.cs
- FileDialogCustomPlacesCollection.cs
- IdentifierService.cs
- KeyValueInternalCollection.cs
- XmlNodeWriter.cs
- WebPartDescription.cs
- WaitHandle.cs
- WindowsBrush.cs
- FieldBuilder.cs
- GetMemberBinder.cs
- Relationship.cs
- ProcessModelInfo.cs
- FunctionCommandText.cs
- ActivationService.cs
- ExtensionWindowHeader.cs
- OperandQuery.cs
- ObjectSet.cs
- MethodBuilderInstantiation.cs
- SHA512Managed.cs
- As.cs
- xml.cs
- Schema.cs
- UserControlCodeDomTreeGenerator.cs
- ConnectionInterfaceCollection.cs
- ObjectStateManagerMetadata.cs
- SqlProviderManifest.cs
- LassoHelper.cs
- SyndicationDeserializer.cs
- SafeNativeMemoryHandle.cs
- RewritingPass.cs
- SqlTrackingService.cs
- DecimalAnimationUsingKeyFrames.cs