Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / Media / textformatting / CharacterHit.cs / 1 / 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
- dataSvcMapFileLoader.cs
- IUnknownConstantAttribute.cs
- StatusBarPanelClickEvent.cs
- __ConsoleStream.cs
- MonthChangedEventArgs.cs
- TransformerInfoCollection.cs
- RewritingSimplifier.cs
- ConfigurationConverterBase.cs
- HttpClientCertificate.cs
- DesignSurfaceServiceContainer.cs
- HwndHost.cs
- DefaultCompensation.cs
- CodeRegionDirective.cs
- PingReply.cs
- QuaternionAnimationBase.cs
- HotSpot.cs
- SiteMapNodeItemEventArgs.cs
- ScriptResourceAttribute.cs
- ObjectList.cs
- PermissionAttributes.cs
- TaskFormBase.cs
- ExpressionBuilderCollection.cs
- BitmapEffectDrawingContent.cs
- WebMessageEncodingBindingElement.cs
- ExtenderProvidedPropertyAttribute.cs
- Win32KeyboardDevice.cs
- SqlLiftWhereClauses.cs
- RoutedPropertyChangedEventArgs.cs
- SecurityTokenAuthenticator.cs
- IUnknownConstantAttribute.cs
- ControlCachePolicy.cs
- CloudCollection.cs
- RangeValidator.cs
- ExternalDataExchangeClient.cs
- RepeaterItemEventArgs.cs
- ServicePrincipalNameElement.cs
- TiffBitmapEncoder.cs
- MailDefinition.cs
- XamlStream.cs
- SiteMapNodeItem.cs
- ExpressionWriter.cs
- WorkerRequest.cs
- MetadataSet.cs
- StringInfo.cs
- PageThemeParser.cs
- ColumnCollection.cs
- TypeUtil.cs
- RotateTransform.cs
- pingexception.cs
- RequiredFieldValidator.cs
- GeometryDrawing.cs
- DecoratedNameAttribute.cs
- DashStyle.cs
- UrlAuthFailedErrorFormatter.cs
- XmlBinaryWriterSession.cs
- Int64Animation.cs
- DbDataSourceEnumerator.cs
- PropertyManager.cs
- TrustSection.cs
- WebPartTransformerCollection.cs
- ToolStripRendererSwitcher.cs
- DataTableNameHandler.cs
- GenericArgumentsUpdater.cs
- ServiceDescription.cs
- SystemUnicastIPAddressInformation.cs
- PrinterResolution.cs
- panel.cs
- StreamResourceInfo.cs
- XamlTreeBuilder.cs
- NavigationPropertyEmitter.cs
- XPathBinder.cs
- ResourcesChangeInfo.cs
- SecurityDocument.cs
- SocketPermission.cs
- ComboBoxRenderer.cs
- DisplayMemberTemplateSelector.cs
- _Win32.cs
- Help.cs
- LogReserveAndAppendState.cs
- DeploymentSection.cs
- MatrixValueSerializer.cs
- XmlIgnoreAttribute.cs
- _ConnectionGroup.cs
- RangeValuePattern.cs
- IsolatedStorage.cs
- SqlProviderManifest.cs
- SizeF.cs
- CompilationRelaxations.cs
- ArglessEventHandlerProxy.cs
- ResolveMatches11.cs
- LineInfo.cs
- SymmetricAlgorithm.cs
- xmlsaver.cs
- BamlLocalizer.cs
- FixedSOMLineRanges.cs
- XmlReaderDelegator.cs
- BypassElement.cs
- DataGridViewSelectedCellCollection.cs
- HtmlHistory.cs
- IntSecurity.cs