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
- ListViewGroup.cs
- SqlStream.cs
- WebBrowser.cs
- GroupByExpressionRewriter.cs
- WindowsRebar.cs
- NameValuePair.cs
- ClosableStream.cs
- StrongName.cs
- UserControlCodeDomTreeGenerator.cs
- PreviewControlDesigner.cs
- CompareInfo.cs
- WpfWebRequestHelper.cs
- AlphabeticalEnumConverter.cs
- InlineObject.cs
- CodeParameterDeclarationExpression.cs
- TypedTableBaseExtensions.cs
- Optimizer.cs
- GuidelineSet.cs
- BindingMemberInfo.cs
- Button.cs
- XmlILIndex.cs
- OdbcHandle.cs
- KoreanCalendar.cs
- HttpRuntimeSection.cs
- Transactions.cs
- XPathSingletonIterator.cs
- StylusPointDescription.cs
- TextBoxRenderer.cs
- Types.cs
- TemplateControl.cs
- SpStreamWrapper.cs
- EventDriven.cs
- Object.cs
- SpanIndex.cs
- bindurihelper.cs
- BufferedGraphicsContext.cs
- ResourceContainer.cs
- HttpModulesSection.cs
- WindowsRegion.cs
- DbParameterCollectionHelper.cs
- ConcurrentBag.cs
- DataBoundControlAdapter.cs
- SecUtil.cs
- CommandEventArgs.cs
- IPEndPointCollection.cs
- XmlEncoding.cs
- IsolatedStoragePermission.cs
- XmlNamespaceMappingCollection.cs
- ObjectDataSourceEventArgs.cs
- StylusPointDescription.cs
- ContextInformation.cs
- CollectionConverter.cs
- SettingsProperty.cs
- Point3DAnimation.cs
- Margins.cs
- WebCategoryAttribute.cs
- Size.cs
- ChineseLunisolarCalendar.cs
- Message.cs
- ExclusiveCanonicalizationTransform.cs
- XappLauncher.cs
- Vector3dCollection.cs
- ConnectionProviderAttribute.cs
- SoapObjectWriter.cs
- DesignerForm.cs
- TailPinnedEventArgs.cs
- SqlConnectionStringBuilder.cs
- TrackingLocation.cs
- Collection.cs
- UriTemplateTable.cs
- UdpDiscoveryEndpoint.cs
- ObjectQueryProvider.cs
- Win32Native.cs
- DeferredReference.cs
- ImageField.cs
- PipelineModuleStepContainer.cs
- SoapInteropTypes.cs
- ArrayList.cs
- SecurityPermission.cs
- RecordManager.cs
- WindowAutomationPeer.cs
- RawStylusInput.cs
- SurrogateEncoder.cs
- WhiteSpaceTrimStringConverter.cs
- GlobalProxySelection.cs
- XPathNodeList.cs
- ValidationPropertyAttribute.cs
- CacheMemory.cs
- AmbiguousMatchException.cs
- InternalUserCancelledException.cs
- ReaderWriterLock.cs
- Matrix.cs
- DataServiceEntityAttribute.cs
- CommonGetThemePartSize.cs
- COM2ComponentEditor.cs
- CriticalFinalizerObject.cs
- TransactionScope.cs
- CacheHelper.cs
- WorkflowDesignerMessageFilter.cs
- EdmMember.cs