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
- WebPartRestoreVerb.cs
- DateTimeParse.cs
- EntityException.cs
- OptimalTextSource.cs
- ColorTransform.cs
- HttpHandlersSection.cs
- ArgumentNullException.cs
- TemplateKeyConverter.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- TextAutomationPeer.cs
- MimeTypeAttribute.cs
- AttachInfo.cs
- SchemaType.cs
- UidPropertyAttribute.cs
- ValidationErrorEventArgs.cs
- BinaryReader.cs
- listitem.cs
- ProcessThreadCollection.cs
- FixedSOMTextRun.cs
- FileInfo.cs
- SettingsPropertyValue.cs
- ExceptionUtil.cs
- KerberosReceiverSecurityToken.cs
- ProfileService.cs
- StateMachine.cs
- BrowserCapabilitiesCompiler.cs
- FrameDimension.cs
- CodeMemberMethod.cs
- ToolStripItemImageRenderEventArgs.cs
- DataRelationPropertyDescriptor.cs
- basevalidator.cs
- DataSourceDescriptorCollection.cs
- RangeValuePatternIdentifiers.cs
- ChtmlTextWriter.cs
- ReliabilityContractAttribute.cs
- CompositeFontInfo.cs
- TextTreeUndoUnit.cs
- HttpListenerContext.cs
- FrameworkElement.cs
- CodeLabeledStatement.cs
- ShaderEffect.cs
- CatalogZoneBase.cs
- Compilation.cs
- LineServicesRun.cs
- namescope.cs
- TrackingProfile.cs
- DataGrid.cs
- PriorityQueue.cs
- SqlDuplicator.cs
- DetailsView.cs
- TransformedBitmap.cs
- CommentGlyph.cs
- PathSegmentCollection.cs
- TemplatePagerField.cs
- TdsParserStateObject.cs
- GeneralTransformGroup.cs
- MSAAWinEventWrap.cs
- ProfileSettingsCollection.cs
- EntitySqlQueryBuilder.cs
- MouseGestureValueSerializer.cs
- FacetValues.cs
- AuthorizationRuleCollection.cs
- _FixedSizeReader.cs
- PromptEventArgs.cs
- ImagingCache.cs
- WorkflowMessageEventArgs.cs
- UnknownBitmapDecoder.cs
- DecimalConstantAttribute.cs
- DbConnectionPoolGroupProviderInfo.cs
- CodeEventReferenceExpression.cs
- RoutedEventValueSerializer.cs
- PassportPrincipal.cs
- CatalogPart.cs
- DataGridCell.cs
- As.cs
- DataGridViewColumnEventArgs.cs
- ErrorFormatterPage.cs
- GifBitmapDecoder.cs
- _SslState.cs
- FolderBrowserDialog.cs
- AttributeQuery.cs
- OleDbReferenceCollection.cs
- EventMappingSettings.cs
- LambdaCompiler.ControlFlow.cs
- FormatControl.cs
- UMPAttributes.cs
- compensatingcollection.cs
- EventSourceCreationData.cs
- FixedDocument.cs
- TreeNodeStyleCollection.cs
- RenderingEventArgs.cs
- FilterableAttribute.cs
- StringValidator.cs
- MultipartContentParser.cs
- CornerRadius.cs
- InkCanvas.cs
- PreviewPrintController.cs
- ScaleTransform3D.cs
- InputBinding.cs
- CheckBoxList.cs