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
- DetailsView.cs
- ObjectQuery.cs
- ReflectionUtil.cs
- XPathSelectionIterator.cs
- ComponentChangingEvent.cs
- ActivationServices.cs
- AdornerHitTestResult.cs
- AsyncCompletedEventArgs.cs
- RootAction.cs
- DeviceContext.cs
- SystemIcmpV6Statistics.cs
- VoiceSynthesis.cs
- UpdatePanelTriggerCollection.cs
- _NativeSSPI.cs
- PropertyGeneratedEventArgs.cs
- RbTree.cs
- Atom10FormatterFactory.cs
- ConvertBinder.cs
- AvtEvent.cs
- ManifestResourceInfo.cs
- ImageKeyConverter.cs
- TemplateAction.cs
- TypeCodeDomSerializer.cs
- Fonts.cs
- HttpCapabilitiesSectionHandler.cs
- CheckBoxDesigner.cs
- X509SecurityToken.cs
- CaretElement.cs
- ListControl.cs
- Condition.cs
- CustomAttributeBuilder.cs
- ApplicationId.cs
- WebPartConnectionsDisconnectVerb.cs
- HttpCapabilitiesBase.cs
- UniqueIdentifierService.cs
- SessionStateModule.cs
- SchemaRegistration.cs
- DocumentApplication.cs
- FormViewDeleteEventArgs.cs
- PassportAuthenticationModule.cs
- StateManagedCollection.cs
- MasterPage.cs
- InfiniteIntConverter.cs
- ToolStripDropDownMenu.cs
- DefaultAssemblyResolver.cs
- ClientRuntimeConfig.cs
- SectionInput.cs
- HtmlValidationSummaryAdapter.cs
- SecurityChannel.cs
- OleDbWrapper.cs
- _OverlappedAsyncResult.cs
- XmlSchemaDocumentation.cs
- PropertyEmitter.cs
- CommonServiceBehaviorElement.cs
- ListViewItem.cs
- AudioException.cs
- XmlSchemaComplexContentExtension.cs
- UserNameSecurityToken.cs
- WsatExtendedInformation.cs
- ReferenceEqualityComparer.cs
- InvokeHandlers.cs
- HttpException.cs
- AtomContentProperty.cs
- NavigatingCancelEventArgs.cs
- FormsAuthentication.cs
- SuppressMergeCheckAttribute.cs
- EntityRecordInfo.cs
- FillRuleValidation.cs
- XmlParserContext.cs
- AccessText.cs
- TreeNodeStyle.cs
- isolationinterop.cs
- FlowNode.cs
- DrawTreeNodeEventArgs.cs
- _ConnectionGroup.cs
- SmiGettersStream.cs
- SHA512Managed.cs
- EmissiveMaterial.cs
- ComponentCodeDomSerializer.cs
- WebEncodingValidator.cs
- CalendarDay.cs
- RuleRef.cs
- PresentationTraceSources.cs
- StringToken.cs
- processwaithandle.cs
- SQLChars.cs
- StrokeCollection2.cs
- Operand.cs
- GenericXmlSecurityToken.cs
- ServiceHttpModule.cs
- _OSSOCK.cs
- ImageBrush.cs
- FixUpCollection.cs
- PathFigureCollectionConverter.cs
- CellPartitioner.cs
- objectresult_tresulttype.cs
- Scheduler.cs
- Attributes.cs
- TemplateParser.cs
- FileUpload.cs