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
- EditCommandColumn.cs
- SimpleHandlerBuildProvider.cs
- BackgroundWorker.cs
- CodeComment.cs
- InstanceCreationEditor.cs
- SourceItem.cs
- FreezableCollection.cs
- Control.cs
- UnknownWrapper.cs
- EntityTypeBase.cs
- SafeCryptHandles.cs
- BindingElement.cs
- CalendarSelectionChangedEventArgs.cs
- Literal.cs
- DataColumn.cs
- diagnosticsswitches.cs
- NativeMethods.cs
- TcpClientCredentialType.cs
- XmlNamespaceManager.cs
- BinarySerializer.cs
- Clipboard.cs
- HMACSHA384.cs
- PeerEndPoint.cs
- StrongNamePublicKeyBlob.cs
- KeyProperty.cs
- ScriptIgnoreAttribute.cs
- BStrWrapper.cs
- Compilation.cs
- BinaryMethodMessage.cs
- RelatedImageListAttribute.cs
- ListenerElementsCollection.cs
- SqlClientPermission.cs
- DisplayNameAttribute.cs
- DataGridViewDataConnection.cs
- PropertyChangedEventManager.cs
- HandleCollector.cs
- BamlRecordWriter.cs
- ServerProtocol.cs
- XmlElement.cs
- BaseValidatorDesigner.cs
- IntegerValidator.cs
- XPathDocument.cs
- VSWCFServiceContractGenerator.cs
- RangeBase.cs
- MaterializeFromAtom.cs
- EntitySetRetriever.cs
- GeneratedCodeAttribute.cs
- GridSplitter.cs
- ThreadPoolTaskScheduler.cs
- XmlElementCollection.cs
- Crc32.cs
- Set.cs
- Point.cs
- TextEditorContextMenu.cs
- AssertFilter.cs
- Material.cs
- CodeActivityMetadata.cs
- PerspectiveCamera.cs
- TextEditorTyping.cs
- CompilerTypeWithParams.cs
- _FixedSizeReader.cs
- SqlInternalConnection.cs
- DeclarativeCatalogPart.cs
- SqlExpressionNullability.cs
- HttpFileCollectionWrapper.cs
- XsdBuildProvider.cs
- SpecialFolderEnumConverter.cs
- StringBuilder.cs
- ControllableStoryboardAction.cs
- lengthconverter.cs
- ScrollableControl.cs
- ColumnHeaderConverter.cs
- DeclaredTypeElement.cs
- ValidationResult.cs
- ResourcePermissionBaseEntry.cs
- UnauthorizedAccessException.cs
- ResourceType.cs
- AutomationInteropProvider.cs
- NominalTypeEliminator.cs
- EncoderReplacementFallback.cs
- DbConnectionStringCommon.cs
- AssemblySettingAttributes.cs
- ColorBlend.cs
- StickyNoteContentControl.cs
- XmlUtilWriter.cs
- RuntimeEnvironment.cs
- DesignerTransactionCloseEvent.cs
- HtmlInputText.cs
- HybridObjectCache.cs
- WhitespaceRuleLookup.cs
- AssociationSet.cs
- XpsSerializationManager.cs
- FrameworkContextData.cs
- ColorConverter.cs
- CssClassPropertyAttribute.cs
- HandleCollector.cs
- EventDescriptorCollection.cs
- NativeMethodsOther.cs
- BuilderPropertyEntry.cs
- PreviewPageInfo.cs