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
- KeyValuePair.cs
- ButtonStandardAdapter.cs
- ResXResourceSet.cs
- FormsAuthenticationUser.cs
- SchemaDeclBase.cs
- BamlWriter.cs
- TemplateField.cs
- ExecutionContext.cs
- ConstraintCollection.cs
- ModulesEntry.cs
- IconHelper.cs
- InfoCardProofToken.cs
- TextDataBindingHandler.cs
- InvalidOleVariantTypeException.cs
- DataGridViewRowsRemovedEventArgs.cs
- WebPartVerbCollection.cs
- FolderBrowserDialog.cs
- CompletionProxy.cs
- XhtmlBasicPhoneCallAdapter.cs
- AttachedAnnotationChangedEventArgs.cs
- Utils.cs
- Operand.cs
- ChannelParameterCollection.cs
- Constants.cs
- CloudCollection.cs
- DataGrid.cs
- TagPrefixCollection.cs
- MethodBuilder.cs
- ClientApiGenerator.cs
- MD5.cs
- Zone.cs
- ResourceAttributes.cs
- MetafileHeader.cs
- AuthorizationRule.cs
- EllipseGeometry.cs
- SqlDelegatedTransaction.cs
- NativeMethods.cs
- SmiRequestExecutor.cs
- RoutedEventArgs.cs
- KnownTypeAttribute.cs
- XslCompiledTransform.cs
- DoubleLink.cs
- DependsOnAttribute.cs
- Perspective.cs
- XmlSchemaCollection.cs
- StyleSelector.cs
- cookiecollection.cs
- TextTreeUndo.cs
- XmlJsonWriter.cs
- OleDbCommandBuilder.cs
- ObjectHelper.cs
- ConnectionConsumerAttribute.cs
- TextLineBreak.cs
- StackBuilderSink.cs
- ListViewItem.cs
- DataAccessor.cs
- DataTableCollection.cs
- DataGridViewRowHeaderCell.cs
- OAVariantLib.cs
- DrawingBrush.cs
- PersonalizationProvider.cs
- PackWebRequest.cs
- ExtendedProtectionPolicyTypeConverter.cs
- BamlRecordHelper.cs
- Event.cs
- xmlsaver.cs
- ElementFactory.cs
- SqlFileStream.cs
- CompareValidator.cs
- Addressing.cs
- SiteMapNodeItem.cs
- HtmlContainerControl.cs
- KnownTypesHelper.cs
- Metadata.cs
- PassportPrincipal.cs
- X509CertificateValidator.cs
- SqlConnectionString.cs
- XmlValidatingReader.cs
- WindowsScrollBar.cs
- DbExpressionVisitor_TResultType.cs
- LazyTextWriterCreator.cs
- NativeMethods.cs
- AmbiguousMatchException.cs
- WorkerRequest.cs
- PageSettings.cs
- NTAccount.cs
- String.cs
- StorageEntityContainerMapping.cs
- ItemsControl.cs
- Executor.cs
- ToolStripLocationCancelEventArgs.cs
- SymmetricKeyWrap.cs
- ConfigurationValidatorBase.cs
- InputLangChangeEvent.cs
- BezierSegment.cs
- Crypto.cs
- SplitterCancelEvent.cs
- DataGridViewRowConverter.cs
- SessionStateItemCollection.cs
- XhtmlTextWriter.cs