Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ComponentChangingEvent.cs
- CodeArgumentReferenceExpression.cs
- TypeDescriptionProvider.cs
- NamespaceCollection.cs
- ArraySegment.cs
- LineServicesRun.cs
- TextEditorTables.cs
- EndOfStreamException.cs
- Model3DGroup.cs
- HyperLinkField.cs
- PopOutPanel.cs
- CodeEventReferenceExpression.cs
- XmlException.cs
- ListCollectionView.cs
- ScriptModule.cs
- DataControlCommands.cs
- DriveNotFoundException.cs
- WebPartMenuStyle.cs
- TextPointer.cs
- LinkLabel.cs
- TemplatePropertyEntry.cs
- ProxyHelper.cs
- OdbcHandle.cs
- ISFClipboardData.cs
- ExpressionEditorAttribute.cs
- MachineKey.cs
- Coordinator.cs
- GroupBoxDesigner.cs
- _NTAuthentication.cs
- RegionInfo.cs
- querybuilder.cs
- SessionIDManager.cs
- MsmqInputMessage.cs
- ImmutableObjectAttribute.cs
- SecurityKeyIdentifierClause.cs
- ListViewItemEventArgs.cs
- UniqueTransportManagerRegistration.cs
- WebPartDisplayModeCancelEventArgs.cs
- ScrollEvent.cs
- PageThemeParser.cs
- PageWrapper.cs
- IntSecurity.cs
- ProfileBuildProvider.cs
- UIElement3D.cs
- HtmlInputCheckBox.cs
- AnchorEditor.cs
- SessionState.cs
- HatchBrush.cs
- ErrorCodes.cs
- _NegoState.cs
- MimeWriter.cs
- Root.cs
- Cloud.cs
- TriggerCollection.cs
- WorkflowInstance.cs
- SafeWaitHandle.cs
- ListParagraph.cs
- WebPartMenuStyle.cs
- Message.cs
- DataColumnChangeEvent.cs
- Message.cs
- ConfigurationSectionCollection.cs
- ContainsSearchOperator.cs
- BufferedReadStream.cs
- peernodestatemanager.cs
- RequestCachingSection.cs
- Array.cs
- TextLineResult.cs
- FixedPageAutomationPeer.cs
- MiniCustomAttributeInfo.cs
- CopyCodeAction.cs
- ThreadNeutralSemaphore.cs
- CodeCastExpression.cs
- FileUtil.cs
- BaseCollection.cs
- HostExecutionContextManager.cs
- DocumentEventArgs.cs
- BatchWriter.cs
- DependencyObject.cs
- Formatter.cs
- PageParserFilter.cs
- FormViewInsertedEventArgs.cs
- InvokeMemberBinder.cs
- XmlEntityReference.cs
- DispatcherExceptionEventArgs.cs
- ResXResourceSet.cs
- UnsafeNativeMethodsPenimc.cs
- WebEventTraceProvider.cs
- SatelliteContractVersionAttribute.cs
- CodeStatementCollection.cs
- SqlRecordBuffer.cs
- XmlMapping.cs
- Table.cs
- RegexTree.cs
- MdiWindowListItemConverter.cs
- Char.cs
- BaseProcessor.cs
- PrinterSettings.cs
- VisualTreeUtils.cs
- CodeMemberMethod.cs