Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / 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 [....]/sites/Avalon/Specs/Glyph%20Run%20hit%20testing%20and%20caret%20placement%20API.htm#CharacterHit // // // History: // 11/30/2004 : [....] - 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MatrixConverter.cs
- SQLInt64.cs
- OdbcConnectionPoolProviderInfo.cs
- ListenDesigner.cs
- HttpListener.cs
- IChannel.cs
- CompoundFileReference.cs
- InstanceKeyNotReadyException.cs
- QilNode.cs
- CodeNamespace.cs
- ProgressChangedEventArgs.cs
- IndexExpression.cs
- IArgumentProvider.cs
- SqlErrorCollection.cs
- sqlmetadatafactory.cs
- AsyncDataRequest.cs
- ClientClassGenerator.cs
- dataprotectionpermission.cs
- RepeatButtonAutomationPeer.cs
- DPCustomTypeDescriptor.cs
- ProcessStartInfo.cs
- LoginName.cs
- XmlAnyElementAttributes.cs
- controlskin.cs
- CompositeCollectionView.cs
- WebPartConnectionCollection.cs
- StrokeNodeOperations.cs
- TokenBasedSet.cs
- WebUtil.cs
- SendSecurityHeader.cs
- CompiledQuery.cs
- XPathDocument.cs
- DataGridViewIntLinkedList.cs
- ColorContextHelper.cs
- SqlUtils.cs
- ExtentCqlBlock.cs
- HScrollProperties.cs
- DiagnosticsConfigurationHandler.cs
- DbConnectionClosed.cs
- DataGridCellEditEndingEventArgs.cs
- AuthenticateEventArgs.cs
- ProxyHwnd.cs
- CompiledXpathExpr.cs
- DataGridViewCellStateChangedEventArgs.cs
- Block.cs
- QueryResults.cs
- EventHandlersDesigner.cs
- WindowsSlider.cs
- MailWebEventProvider.cs
- Baml2006SchemaContext.cs
- DesignerProperties.cs
- DesignTimeParseData.cs
- FormsAuthenticationUserCollection.cs
- CornerRadiusConverter.cs
- Oci.cs
- LogLogRecordEnumerator.cs
- DataGridViewRowCollection.cs
- Stack.cs
- ThemeInfoAttribute.cs
- SocketException.cs
- ReadOnlyObservableCollection.cs
- KeyValuePair.cs
- SafeEventLogWriteHandle.cs
- SmiMetaData.cs
- InkCanvasSelection.cs
- ChannelServices.cs
- MobileComponentEditorPage.cs
- SchemaImporterExtension.cs
- PreviewKeyDownEventArgs.cs
- HtmlTableCell.cs
- DomainConstraint.cs
- GZipStream.cs
- TrackingProfileSerializer.cs
- GeometryHitTestParameters.cs
- CategoryNameCollection.cs
- RuntimeWrappedException.cs
- Point4D.cs
- XmlSchemaSubstitutionGroup.cs
- TypeLoadException.cs
- TdsParserStaticMethods.cs
- CommandID.cs
- MenuCommands.cs
- InputLanguageEventArgs.cs
- DecimalSumAggregationOperator.cs
- ArgumentException.cs
- CommentAction.cs
- Memoizer.cs
- FileDialog.cs
- MemoryFailPoint.cs
- SemaphoreFullException.cs
- PngBitmapEncoder.cs
- ColorTransformHelper.cs
- Literal.cs
- DetailsViewUpdatedEventArgs.cs
- SolidColorBrush.cs
- StackOverflowException.cs
- MdiWindowListItemConverter.cs
- PointKeyFrameCollection.cs
- PlatformNotSupportedException.cs
- AttributeSetAction.cs