Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- EncodingTable.cs
- ToolStripScrollButton.cs
- login.cs
- SpellCheck.cs
- OraclePermissionAttribute.cs
- FtpWebRequest.cs
- IsolatedStorage.cs
- EventSetterHandlerConverter.cs
- ClientOptions.cs
- NetTcpSectionData.cs
- DashStyle.cs
- UnsignedPublishLicense.cs
- Signature.cs
- UrlAuthorizationModule.cs
- ReliableInputConnection.cs
- MetafileHeaderWmf.cs
- processwaithandle.cs
- DecimalConverter.cs
- PersonalizationProvider.cs
- SoapIncludeAttribute.cs
- BidPrivateBase.cs
- SqlMetaData.cs
- XsltException.cs
- PresentationTraceSources.cs
- ReadOnlyNameValueCollection.cs
- LinkedResource.cs
- SchemaEntity.cs
- remotingproxy.cs
- RemotingConfigParser.cs
- InvalidWMPVersionException.cs
- DesignerWithHeader.cs
- FormatVersion.cs
- EdmProperty.cs
- Hashtable.cs
- WindowAutomationPeer.cs
- VisualStyleTypesAndProperties.cs
- EventRoute.cs
- IPipelineRuntime.cs
- RolePrincipal.cs
- MetabaseServerConfig.cs
- PreviewKeyDownEventArgs.cs
- FaultDescriptionCollection.cs
- ListItemParagraph.cs
- XmlElementCollection.cs
- WebBrowser.cs
- IisTraceListener.cs
- ButtonBase.cs
- DirectionalLight.cs
- MetadataUtil.cs
- EncodingNLS.cs
- ExpressionConverter.cs
- TrackingMemoryStream.cs
- Expression.cs
- FontFamilyConverter.cs
- ComponentDispatcher.cs
- BlockExpression.cs
- MultiDataTrigger.cs
- TextEditorCharacters.cs
- DataGridCellInfo.cs
- DataGridViewLinkColumn.cs
- XhtmlBasicPhoneCallAdapter.cs
- QueryableFilterUserControl.cs
- TypeDescriptor.cs
- DrawingAttributeSerializer.cs
- RemoteWebConfigurationHostServer.cs
- AttributeAction.cs
- SafePEFileHandle.cs
- handlecollector.cs
- XmlnsCache.cs
- DeviceContext2.cs
- HttpHostedTransportConfiguration.cs
- XmlSchemaSimpleContentExtension.cs
- FixedBufferAttribute.cs
- HostSecurityManager.cs
- ContentType.cs
- FollowerQueueCreator.cs
- PolicyChain.cs
- ListBindingConverter.cs
- HandlerWithFactory.cs
- DataGridColumn.cs
- FormViewPageEventArgs.cs
- ObjectDataProvider.cs
- SchemaSetCompiler.cs
- MultiPageTextView.cs
- Registry.cs
- HttpSessionStateWrapper.cs
- altserialization.cs
- BinaryUtilClasses.cs
- Point.cs
- EventHandlersDesigner.cs
- Point3DAnimationUsingKeyFrames.cs
- ObjectView.cs
- PrintDialogException.cs
- SerializationException.cs
- RequiredFieldValidator.cs
- Substitution.cs
- SurrogateEncoder.cs
- XamlTypeMapperSchemaContext.cs
- TextContainerHelper.cs
- RootNamespaceAttribute.cs