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
- ErrorInfoXmlDocument.cs
- SslStream.cs
- PrintingPermissionAttribute.cs
- GridViewRowCollection.cs
- VectorCollectionConverter.cs
- MessageUtil.cs
- ObjectSpanRewriter.cs
- StoreContentChangedEventArgs.cs
- ProofTokenCryptoHandle.cs
- TextInfo.cs
- ClickablePoint.cs
- NativeMethods.cs
- MultiBinding.cs
- SortedSetDebugView.cs
- SqlMetaData.cs
- ListViewContainer.cs
- EventRouteFactory.cs
- DateTimeConstantAttribute.cs
- TextFormatter.cs
- ApplicationInterop.cs
- RuntimeHandles.cs
- ListDictionary.cs
- ExceptionUtility.cs
- HttpListenerElement.cs
- RoutedEvent.cs
- PhysicalAddress.cs
- DrawingBrush.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- XmlLanguageConverter.cs
- WebPartZoneCollection.cs
- ThreadStateException.cs
- DateTimeFormatInfo.cs
- MarkupExtensionParser.cs
- RepeaterItemEventArgs.cs
- JpegBitmapEncoder.cs
- ProtocolsConfigurationHandler.cs
- TextCollapsingProperties.cs
- ItemDragEvent.cs
- MostlySingletonList.cs
- Condition.cs
- DataFormats.cs
- WebEvents.cs
- WebPartTransformerCollection.cs
- CodeDirectionExpression.cs
- TdsParserStateObject.cs
- HtmlForm.cs
- InputProcessorProfilesLoader.cs
- ellipse.cs
- HttpRequest.cs
- RootBrowserWindowProxy.cs
- ExpressionConverter.cs
- WeakReferenceEnumerator.cs
- ServiceReference.cs
- TokenizerHelper.cs
- KeyValueInternalCollection.cs
- IsolatedStorageFileStream.cs
- FontFamily.cs
- ScriptingRoleServiceSection.cs
- MapPathBasedVirtualPathProvider.cs
- AnnotationStore.cs
- CellParaClient.cs
- PrincipalPermissionMode.cs
- ReliableMessagingHelpers.cs
- KeyInterop.cs
- DrawingGroupDrawingContext.cs
- BitmapEffectInput.cs
- CompilationRelaxations.cs
- EmbeddedMailObjectsCollection.cs
- _ProxyRegBlob.cs
- AsymmetricAlgorithm.cs
- IProvider.cs
- RunClient.cs
- Material.cs
- UIElementCollection.cs
- VisemeEventArgs.cs
- ColumnPropertiesGroup.cs
- GraphicsContainer.cs
- KnownBoxes.cs
- ExpandCollapseProviderWrapper.cs
- DataMisalignedException.cs
- DataGridViewToolTip.cs
- XamlLoadErrorInfo.cs
- ObjectCloneHelper.cs
- FormConverter.cs
- InlineCollection.cs
- TriggerActionCollection.cs
- StringWriter.cs
- Model3DCollection.cs
- SectionXmlInfo.cs
- SelectedGridItemChangedEvent.cs
- _ConnectionGroup.cs
- CompilationPass2TaskInternal.cs
- WebUtil.cs
- ReadOnlyTernaryTree.cs
- SerializationStore.cs
- Utils.cs
- XmlUrlResolver.cs
- BitmapImage.cs
- UIInitializationException.cs
- EventMemberCodeDomSerializer.cs