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
- AspCompat.cs
- UIntPtr.cs
- ErrorTableItemStyle.cs
- NetworkAddressChange.cs
- CopyCodeAction.cs
- HttpCookiesSection.cs
- SqlCacheDependencyDatabaseCollection.cs
- PassportIdentity.cs
- InfoCardSymmetricCrypto.cs
- FunctionImportMapping.cs
- RepeatInfo.cs
- DetailsViewDeleteEventArgs.cs
- FileDialogCustomPlace.cs
- RectConverter.cs
- FixedSOMLineRanges.cs
- DictionaryChange.cs
- Fonts.cs
- SessionEndingEventArgs.cs
- ISAPIApplicationHost.cs
- SessionStateModule.cs
- VectorCollection.cs
- SpAudioStreamWrapper.cs
- Rethrow.cs
- XmlLinkedNode.cs
- XsltLoader.cs
- Win32MouseDevice.cs
- ReadWriteSpinLock.cs
- HandledEventArgs.cs
- SQLSingle.cs
- SettingsProviderCollection.cs
- CookieParameter.cs
- TextParagraphView.cs
- QilInvoke.cs
- Directory.cs
- EdmProperty.cs
- ISFClipboardData.cs
- PropertyInformationCollection.cs
- JsonSerializer.cs
- WebScriptEnablingElement.cs
- GridPattern.cs
- PasswordPropertyTextAttribute.cs
- LayoutTable.cs
- WebBrowserNavigatingEventHandler.cs
- FormatException.cs
- ContainerControl.cs
- BaseAddressPrefixFilterElementCollection.cs
- IdleTimeoutMonitor.cs
- EventLogInternal.cs
- DriveInfo.cs
- SqlConnectionPoolGroupProviderInfo.cs
- Point3DAnimationUsingKeyFrames.cs
- ContainerVisual.cs
- NameObjectCollectionBase.cs
- SchemaEntity.cs
- XmlExtensionFunction.cs
- PersonalizationProvider.cs
- QueueProcessor.cs
- PrivacyNoticeBindingElementImporter.cs
- NodeFunctions.cs
- QueryOpeningEnumerator.cs
- SerializationFieldInfo.cs
- TreeView.cs
- PenThreadWorker.cs
- CaseExpr.cs
- OutputCacheProfileCollection.cs
- datacache.cs
- XmlEntityReference.cs
- StringReader.cs
- Byte.cs
- XmlSchemaInclude.cs
- EntityViewGenerator.cs
- ToolBarButtonClickEvent.cs
- Configuration.cs
- TargetException.cs
- ReachSerializationUtils.cs
- OleDbDataAdapter.cs
- ImpersonationOption.cs
- PresentationTraceSources.cs
- MenuItemCollection.cs
- RegexBoyerMoore.cs
- ContentFilePart.cs
- TableItemStyle.cs
- NullableBoolConverter.cs
- TrustManagerPromptUI.cs
- NeutralResourcesLanguageAttribute.cs
- ZipIOExtraField.cs
- ByteRangeDownloader.cs
- X509SubjectKeyIdentifierClause.cs
- ListBindableAttribute.cs
- ColumnMapCopier.cs
- BrowserDefinitionCollection.cs
- ChannelSinkStacks.cs
- CommonDialog.cs
- ArrangedElement.cs
- GridViewRowEventArgs.cs
- EdmValidator.cs
- BulletDecorator.cs
- TypeReference.cs
- UrlPath.cs
- PrivacyNoticeBindingElementImporter.cs