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
- InheritanceContextChangedEventManager.cs
- InfoCard.cs
- ProxyWebPartConnectionCollection.cs
- Vector3DCollectionValueSerializer.cs
- RuleSettings.cs
- AggregateNode.cs
- UTF8Encoding.cs
- PkcsUtils.cs
- TypeUnloadedException.cs
- ResourceExpressionBuilder.cs
- DataListItem.cs
- CaseStatement.cs
- DelegatingTypeDescriptionProvider.cs
- EndpointBehaviorElement.cs
- SignedXmlDebugLog.cs
- TabletDeviceInfo.cs
- IResourceProvider.cs
- ProvideValueServiceProvider.cs
- MetadataProperty.cs
- unitconverter.cs
- SoapFault.cs
- ProtocolsConfiguration.cs
- LocalIdKeyIdentifierClause.cs
- TcpProcessProtocolHandler.cs
- SynchronizationLockException.cs
- XmlText.cs
- AnonymousIdentificationSection.cs
- EllipseGeometry.cs
- DataAccessException.cs
- WebSysDescriptionAttribute.cs
- IconConverter.cs
- ContentPlaceHolder.cs
- SoapElementAttribute.cs
- CreateRefExpr.cs
- TdsParserSessionPool.cs
- DataObjectMethodAttribute.cs
- ProxyWebPart.cs
- CommonDialog.cs
- EventWaitHandle.cs
- UIPermission.cs
- TypeResolver.cs
- SequenceDesignerAccessibleObject.cs
- ProxySimple.cs
- Light.cs
- CurrentChangingEventArgs.cs
- HttpModuleAction.cs
- SafeSystemMetrics.cs
- HttpCookiesSection.cs
- dbenumerator.cs
- ColumnResult.cs
- SafeRightsManagementSessionHandle.cs
- PropertyChangedEventArgs.cs
- SQLInt32.cs
- Glyph.cs
- WindowsHyperlink.cs
- CacheModeValueSerializer.cs
- Pool.cs
- DockingAttribute.cs
- AuthorizationRuleCollection.cs
- ExpressionNormalizer.cs
- SubqueryRules.cs
- AttachmentService.cs
- remotingproxy.cs
- LicenseProviderAttribute.cs
- DesignerLoader.cs
- SignerInfo.cs
- ContainerActivationHelper.cs
- dataobject.cs
- SuppressIldasmAttribute.cs
- GroupStyle.cs
- GroupBox.cs
- CacheSection.cs
- NamespaceDecl.cs
- CompilationAssemblyInstallComponent.cs
- PathSegment.cs
- FieldNameLookup.cs
- TaiwanLunisolarCalendar.cs
- SqlHelper.cs
- Emitter.cs
- IUnknownConstantAttribute.cs
- DataFormat.cs
- WebPartTransformerAttribute.cs
- BuildDependencySet.cs
- RadioButtonList.cs
- CommentEmitter.cs
- LabelLiteral.cs
- SemaphoreSecurity.cs
- GraphicsState.cs
- CalendarAutoFormat.cs
- XmlSchemaChoice.cs
- SystemPens.cs
- MessageSecurityProtocol.cs
- PersonalizableTypeEntry.cs
- Empty.cs
- TextEncodedRawTextWriter.cs
- CommandLibraryHelper.cs
- RoutedEventHandlerInfo.cs
- ArglessEventHandlerProxy.cs
- HtmlValidationSummaryAdapter.cs
- AssemblyCacheEntry.cs