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
- ListView.cs
- OperationInfo.cs
- OutputBuffer.cs
- ImportContext.cs
- ViewCellSlot.cs
- _Connection.cs
- TokenBasedSet.cs
- ClientConfigPaths.cs
- DataPagerFieldCollection.cs
- MembershipPasswordException.cs
- ListViewItemMouseHoverEvent.cs
- NamedElement.cs
- PackagingUtilities.cs
- DispatcherOperation.cs
- SqlBulkCopyColumnMappingCollection.cs
- DynamicValidatorEventArgs.cs
- InputScope.cs
- VScrollProperties.cs
- Overlapped.cs
- SQLResource.cs
- StaticExtension.cs
- OracleRowUpdatingEventArgs.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- AccessibleObject.cs
- DataGridViewTextBoxColumn.cs
- ProcessThreadCollection.cs
- NavigationHelper.cs
- SecUtil.cs
- StoreContentChangedEventArgs.cs
- OracleConnectionString.cs
- HttpWebResponse.cs
- UrlPropertyAttribute.cs
- Border.cs
- Span.cs
- TableProviderWrapper.cs
- AliasedExpr.cs
- JavaScriptSerializer.cs
- SecureEnvironment.cs
- StringFreezingAttribute.cs
- WeakEventTable.cs
- OrderingQueryOperator.cs
- GlyphRun.cs
- DispatchChannelSink.cs
- _NegotiateClient.cs
- ContentElement.cs
- SafeFileMappingHandle.cs
- DecimalAnimationBase.cs
- GenericTypeParameterConverter.cs
- XmlNavigatorStack.cs
- TypeListConverter.cs
- TabletCollection.cs
- KeyManager.cs
- ByteStorage.cs
- HwndAppCommandInputProvider.cs
- TdsParserHelperClasses.cs
- DocumentPage.cs
- InlinedAggregationOperator.cs
- StylusShape.cs
- LogRestartAreaEnumerator.cs
- ConfigurationException.cs
- StateDesigner.Layouts.cs
- EmptyQuery.cs
- State.cs
- CodeDOMUtility.cs
- Gdiplus.cs
- XmlEnumAttribute.cs
- BindUriHelper.cs
- ControlAdapter.cs
- GridViewDeletedEventArgs.cs
- ObjectDataSourceEventArgs.cs
- WebCategoryAttribute.cs
- ToolStripSystemRenderer.cs
- Canvas.cs
- WeakHashtable.cs
- Function.cs
- StringValidator.cs
- WsdlEndpointConversionContext.cs
- DrawingImage.cs
- CommonProperties.cs
- ScrollViewer.cs
- BaseResourcesBuildProvider.cs
- HttpCapabilitiesSectionHandler.cs
- Int32Collection.cs
- HandlerBase.cs
- BuildProvider.cs
- NamedPipeTransportSecurityElement.cs
- SqlAliaser.cs
- KeySplineConverter.cs
- StylusPointProperty.cs
- XmlDataSourceNodeDescriptor.cs
- ClassDataContract.cs
- DiscoveryReference.cs
- DetailsViewRow.cs
- Cursors.cs
- MessageQueueTransaction.cs
- Geometry.cs
- Root.cs
- MembershipSection.cs
- IssuanceLicense.cs
- SupportingTokenAuthenticatorSpecification.cs