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
- ActionNotSupportedException.cs
- WindowInteractionStateTracker.cs
- mansign.cs
- TextRunTypographyProperties.cs
- TextReader.cs
- PropertyEntry.cs
- ContextMenuAutomationPeer.cs
- ObjectDisposedException.cs
- FrameworkContentElement.cs
- TaiwanCalendar.cs
- InputScopeManager.cs
- SQLResource.cs
- ParsedRoute.cs
- UnmanagedBitmapWrapper.cs
- ToolboxItemAttribute.cs
- SqlParameter.cs
- SiteMapNode.cs
- DesignSurfaceEvent.cs
- LocalizedNameDescriptionPair.cs
- Helpers.cs
- SqlServer2KCompatibilityAnnotation.cs
- MemberProjectedSlot.cs
- DebugView.cs
- TrackPointCollection.cs
- PropertyValueUIItem.cs
- PrintEvent.cs
- TextRangeEditTables.cs
- SignatureDescription.cs
- FreezableDefaultValueFactory.cs
- PropertyEmitter.cs
- CancellationScope.cs
- CreateParams.cs
- ManagementBaseObject.cs
- AnchoredBlock.cs
- AttachedPropertyBrowsableAttribute.cs
- SynchronizedDispatch.cs
- TrackingAnnotationCollection.cs
- GACIdentityPermission.cs
- ConnectionDemuxer.cs
- CompilerLocalReference.cs
- DescriptionAttribute.cs
- SendOperation.cs
- MatrixCamera.cs
- ObjectSelectorEditor.cs
- DataGridViewTopLeftHeaderCell.cs
- DisplayMemberTemplateSelector.cs
- ValidationErrorEventArgs.cs
- SignatureDescription.cs
- MILUtilities.cs
- ProfileService.cs
- EntityDataSourceStatementEditor.cs
- EntityObject.cs
- CodeSubDirectoriesCollection.cs
- DataGridViewDesigner.cs
- AnimationClockResource.cs
- TypographyProperties.cs
- DetailsViewUpdatedEventArgs.cs
- LinearKeyFrames.cs
- ChtmlPageAdapter.cs
- DnsEndPoint.cs
- ResourceExpressionEditor.cs
- DetailsViewDeleteEventArgs.cs
- unsafenativemethodstextservices.cs
- WinFormsSecurity.cs
- TableLayoutSettings.cs
- AssemblyInfo.cs
- FileChangeNotifier.cs
- SqlUserDefinedTypeAttribute.cs
- SqlRemoveConstantOrderBy.cs
- ToolStripButton.cs
- OuterGlowBitmapEffect.cs
- BeginStoryboard.cs
- SafeLocalMemHandle.cs
- Point3DConverter.cs
- TextBoxRenderer.cs
- CodeNamespace.cs
- AdornerPresentationContext.cs
- BinHexEncoder.cs
- RichTextBoxConstants.cs
- DataViewManagerListItemTypeDescriptor.cs
- UrlMappingsModule.cs
- XmlSecureResolver.cs
- ColumnResizeUndoUnit.cs
- IntMinMaxAggregationOperator.cs
- TemplatedWizardStep.cs
- ExpressionBuilderCollection.cs
- DataGridItemAutomationPeer.cs
- CompressEmulationStream.cs
- XmlElementElement.cs
- XmlSchemaSimpleContent.cs
- Bitmap.cs
- ListManagerBindingsCollection.cs
- DefaultValueTypeConverter.cs
- SerialStream.cs
- Automation.cs
- CodeParameterDeclarationExpression.cs
- SequenceRangeCollection.cs
- ToolStripItemClickedEventArgs.cs
- WindowsScrollBarBits.cs
- XhtmlConformanceSection.cs