Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- SessionPageStatePersister.cs
- CodeTryCatchFinallyStatement.cs
- HwndSource.cs
- HiddenFieldPageStatePersister.cs
- XPathQilFactory.cs
- BitmapEffectRenderDataResource.cs
- XmlILModule.cs
- HttpRawResponse.cs
- GenerateHelper.cs
- RegexBoyerMoore.cs
- IPeerNeighbor.cs
- DynamicDocumentPaginator.cs
- MouseCaptureWithinProperty.cs
- XDRSchema.cs
- NeutralResourcesLanguageAttribute.cs
- DataGridBoolColumn.cs
- RtfNavigator.cs
- Material.cs
- ThaiBuddhistCalendar.cs
- ProtectedProviderSettings.cs
- HttpClientCertificate.cs
- EncoderExceptionFallback.cs
- ExpressionBuilder.cs
- LabelDesigner.cs
- QilTypeChecker.cs
- basemetadatamappingvisitor.cs
- SqlRemoveConstantOrderBy.cs
- StatusBarItemAutomationPeer.cs
- UnsafeNetInfoNativeMethods.cs
- DefaultMemberAttribute.cs
- Decimal.cs
- AffineTransform3D.cs
- RowSpanVector.cs
- DataGridViewCell.cs
- EventMappingSettingsCollection.cs
- CodeDelegateInvokeExpression.cs
- Positioning.cs
- XmlReaderSettings.cs
- Emitter.cs
- InstanceDataCollectionCollection.cs
- QuaternionRotation3D.cs
- MouseBinding.cs
- RsaKeyGen.cs
- EncoderExceptionFallback.cs
- _NativeSSPI.cs
- BatchStream.cs
- HelpInfo.cs
- safesecurityhelperavalon.cs
- ReaderWriterLockWrapper.cs
- WindowsEditBox.cs
- Parsers.cs
- Rotation3D.cs
- LogEntryHeaderSerializer.cs
- ParseHttpDate.cs
- IApplicationTrustManager.cs
- WindowsImpersonationContext.cs
- IPGlobalProperties.cs
- Serializer.cs
- Helpers.cs
- ResXBuildProvider.cs
- ContentPresenter.cs
- ActivityTypeDesigner.xaml.cs
- SecurityContext.cs
- FontSourceCollection.cs
- ProcessHostServerConfig.cs
- ExpandedProjectionNode.cs
- TextStore.cs
- WebBrowsableAttribute.cs
- MemberMaps.cs
- IIS7UserPrincipal.cs
- Lookup.cs
- HashCoreRequest.cs
- DefaultPropertiesToSend.cs
- UserMapPath.cs
- CodeCatchClauseCollection.cs
- ScrollViewerAutomationPeer.cs
- TextReader.cs
- AccessDataSourceWizardForm.cs
- DataListItemEventArgs.cs
- FragmentNavigationEventArgs.cs
- TraceUtils.cs
- Base64Stream.cs
- ADMembershipUser.cs
- Pair.cs
- PrivilegeNotHeldException.cs
- DataViewManager.cs
- FunctionImportElement.cs
- CommonXSendMessage.cs
- PropertyFilter.cs
- MulticastDelegate.cs
- SqlCacheDependency.cs
- PageBuildProvider.cs
- HandlerFactoryWrapper.cs
- BackgroundWorker.cs
- FormViewUpdateEventArgs.cs
- HttpVersion.cs
- HtmlInputControl.cs
- _CacheStreams.cs
- SimpleWorkerRequest.cs
- LinkTarget.cs