Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- Message.cs
- DataGridViewLinkCell.cs
- Helper.cs
- WeakReadOnlyCollection.cs
- ExpressionCopier.cs
- ActivationServices.cs
- SqlAliasesReferenced.cs
- DesignerDataStoredProcedure.cs
- ActivityCollectionMarkupSerializer.cs
- RichTextBoxConstants.cs
- TaskFileService.cs
- AttachedPropertyInfo.cs
- CodeEventReferenceExpression.cs
- PerfProviderCollection.cs
- EndpointNotFoundException.cs
- DbConnectionPoolGroup.cs
- ThrowHelper.cs
- DataStorage.cs
- VirtualizedCellInfoCollection.cs
- shaperfactory.cs
- HtmlInputReset.cs
- LinqDataSourceStatusEventArgs.cs
- TextBoxAutoCompleteSourceConverter.cs
- ProcessModuleCollection.cs
- ObjRef.cs
- DataStreams.cs
- PolyLineSegmentFigureLogic.cs
- WinInetCache.cs
- StorageMappingItemLoader.cs
- DPTypeDescriptorContext.cs
- UniqueIdentifierService.cs
- ConfigurationElementProperty.cs
- ColorKeyFrameCollection.cs
- SqlTypeSystemProvider.cs
- RemotingAttributes.cs
- EditorPartChrome.cs
- InkCanvasAutomationPeer.cs
- _WinHttpWebProxyDataBuilder.cs
- EventManager.cs
- IndicShape.cs
- MessageLoggingFilterTraceRecord.cs
- UInt64Storage.cs
- Parser.cs
- EntityException.cs
- SQLBytes.cs
- TitleStyle.cs
- DecimalAnimationUsingKeyFrames.cs
- HandledEventArgs.cs
- EntityContainer.cs
- TextSegment.cs
- InlineObject.cs
- ConnectionManagementElementCollection.cs
- StreamReader.cs
- Win32.cs
- DocumentApplication.cs
- NullableIntMinMaxAggregationOperator.cs
- ConfigurationPropertyAttribute.cs
- log.cs
- ConstraintCollection.cs
- WindowsBrush.cs
- DataServiceRequestArgs.cs
- OrderedDictionary.cs
- XPathAncestorQuery.cs
- SafeHandles.cs
- ConnectionManagementElementCollection.cs
- IndentedTextWriter.cs
- BoundColumn.cs
- TypeDelegator.cs
- DllNotFoundException.cs
- NegotiationTokenAuthenticatorState.cs
- FontWeightConverter.cs
- DbConnectionPoolCounters.cs
- SweepDirectionValidation.cs
- Crc32Helper.cs
- ColorMatrix.cs
- AddInEnvironment.cs
- ClientRuntimeConfig.cs
- HtmlElement.cs
- EditorPartChrome.cs
- Console.cs
- ApplicationInterop.cs
- ConfigurationValidatorBase.cs
- WebPartConnectionsCancelEventArgs.cs
- Events.cs
- DefaultAsyncDataDispatcher.cs
- Row.cs
- NetMsmqSecurityElement.cs
- QuaternionAnimation.cs
- WebPartMinimizeVerb.cs
- BitStack.cs
- LinkedResourceCollection.cs
- CapabilitiesAssignment.cs
- WebPartCancelEventArgs.cs
- DesignerCommandSet.cs
- UnmanagedHandle.cs
- ColorPalette.cs
- XNodeNavigator.cs
- wpf-etw.cs
- SqlClientMetaDataCollectionNames.cs
- Converter.cs