Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- InvalidComObjectException.cs
- TableRow.cs
- ClientScriptManager.cs
- basemetadatamappingvisitor.cs
- BindableAttribute.cs
- TdsParser.cs
- COM2ExtendedTypeConverter.cs
- ConfigurationManagerInternalFactory.cs
- MissingFieldException.cs
- ColorBlend.cs
- LineServicesCallbacks.cs
- ProfessionalColors.cs
- XhtmlTextWriter.cs
- CustomErrorCollection.cs
- Renderer.cs
- DelegatingHeader.cs
- PerformanceCounter.cs
- IMembershipProvider.cs
- XmlNavigatorStack.cs
- DependencyPropertyConverter.cs
- TraceSection.cs
- StateMachineSubscriptionManager.cs
- HtmlDocument.cs
- AlignmentXValidation.cs
- ClientTargetSection.cs
- LogicalExpr.cs
- SqlDataSourceSelectingEventArgs.cs
- HttpClientCertificate.cs
- DataStreams.cs
- ScriptRegistrationManager.cs
- Rect.cs
- FolderBrowserDialogDesigner.cs
- ItemsControl.cs
- XmlTextAttribute.cs
- ExtendedPropertyInfo.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- EntityDataSourceChangingEventArgs.cs
- TransferRequestHandler.cs
- KeyBinding.cs
- OrderByBuilder.cs
- ToolStripGrip.cs
- CodeGotoStatement.cs
- QueryableDataSource.cs
- ParameterElement.cs
- WebException.cs
- SystemResources.cs
- CheckBox.cs
- TextRangeBase.cs
- CompiledAction.cs
- PageContentCollection.cs
- ClientRuntimeConfig.cs
- WmlLiteralTextAdapter.cs
- LoginName.cs
- SkewTransform.cs
- QualifierSet.cs
- ServiceInfo.cs
- MapPathBasedVirtualPathProvider.cs
- EncodingDataItem.cs
- lengthconverter.cs
- basemetadatamappingvisitor.cs
- ProtocolViolationException.cs
- Stream.cs
- PixelFormatConverter.cs
- TextDocumentView.cs
- FolderBrowserDialogDesigner.cs
- XmlDocumentSurrogate.cs
- BinaryObjectWriter.cs
- AuthenticationService.cs
- FacetDescription.cs
- RuleSettingsCollection.cs
- SafeFileHandle.cs
- LOSFormatter.cs
- CorePropertiesFilter.cs
- ParameterDataSourceExpression.cs
- SiteMapNodeItem.cs
- ReflectTypeDescriptionProvider.cs
- DoubleCollectionValueSerializer.cs
- DnsPermission.cs
- UnaryNode.cs
- PrinterUnitConvert.cs
- baseaxisquery.cs
- CodeTypeOfExpression.cs
- PrivilegedConfigurationManager.cs
- OpCellTreeNode.cs
- EntityPropertyMappingAttribute.cs
- DocumentPageTextView.cs
- SHA512Cng.cs
- DragCompletedEventArgs.cs
- TableItemStyle.cs
- UserNamePasswordValidator.cs
- SimpleHandlerFactory.cs
- EventDescriptorCollection.cs
- DataGridViewCellCancelEventArgs.cs
- SerializationAttributes.cs
- AuthenticationService.cs
- MessageFormatterConverter.cs
- SmtpAuthenticationManager.cs
- SqlDataReaderSmi.cs
- ClosableStream.cs
- MD5CryptoServiceProvider.cs