Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- ProcessManager.cs
- DoubleUtil.cs
- XmlIncludeAttribute.cs
- DoubleAnimation.cs
- HtmlTableCell.cs
- XmlSchemaValidator.cs
- SharedUtils.cs
- SimpleHandlerBuildProvider.cs
- WebPartActionVerb.cs
- DbConnectionPoolGroup.cs
- ContainerParagraph.cs
- TextMetrics.cs
- Content.cs
- EventRouteFactory.cs
- GridProviderWrapper.cs
- XmlSchemaAny.cs
- CallbackValidatorAttribute.cs
- ExpressionEditor.cs
- CaseInsensitiveHashCodeProvider.cs
- GradientSpreadMethodValidation.cs
- RootBrowserWindow.cs
- NamespaceEmitter.cs
- ImageList.cs
- VisualBrush.cs
- WebPartZoneBase.cs
- SamlConstants.cs
- StandardToolWindows.cs
- StrongNameHelpers.cs
- HScrollProperties.cs
- UTF32Encoding.cs
- DataAdapter.cs
- PerfCounterSection.cs
- NonParentingControl.cs
- CellConstant.cs
- SplitContainer.cs
- ContextMenuService.cs
- ProtocolsSection.cs
- precedingquery.cs
- PatternMatcher.cs
- HtmlGenericControl.cs
- CodeParameterDeclarationExpression.cs
- MembershipSection.cs
- OutputCacheEntry.cs
- DefaultSerializationProviderAttribute.cs
- RangeBaseAutomationPeer.cs
- StyleTypedPropertyAttribute.cs
- ViewEvent.cs
- IndentTextWriter.cs
- FederatedMessageSecurityOverHttpElement.cs
- ArrayEditor.cs
- XmlSequenceWriter.cs
- OdbcTransaction.cs
- FormsAuthenticationConfiguration.cs
- TextServicesLoader.cs
- Math.cs
- InkCanvasAutomationPeer.cs
- Cursors.cs
- Point.cs
- StringAnimationUsingKeyFrames.cs
- MimeBasePart.cs
- BitmapEffect.cs
- KeyEvent.cs
- DictionaryEntry.cs
- Inflater.cs
- ParserHooks.cs
- WorkflowHostingEndpoint.cs
- SimpleMailWebEventProvider.cs
- WebMessageBodyStyleHelper.cs
- CompositionTarget.cs
- ComplexObject.cs
- ReadWriteObjectLock.cs
- ResourceDisplayNameAttribute.cs
- ServiceNameElement.cs
- TabletDeviceInfo.cs
- HostExecutionContextManager.cs
- DropAnimation.xaml.cs
- JournalEntryListConverter.cs
- SafeReversePInvokeHandle.cs
- pingexception.cs
- PauseStoryboard.cs
- hresults.cs
- GroupBox.cs
- CustomExpressionEventArgs.cs
- InvokeProviderWrapper.cs
- MailSettingsSection.cs
- Base64Decoder.cs
- ValuePatternIdentifiers.cs
- TextEditorCharacters.cs
- BitVector32.cs
- TransformedBitmap.cs
- Parallel.cs
- HtmlTableRowCollection.cs
- PartialCachingAttribute.cs
- DoubleLinkListEnumerator.cs
- TimersDescriptionAttribute.cs
- ColumnCollection.cs
- WinFormsSpinner.cs
- SmtpTransport.cs
- CompilationRelaxations.cs
- CellLabel.cs