Code:
/ 4.0 / 4.0 / 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.
//----------------------------------------------------------------------------
//
// 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
- MouseGesture.cs
- XmlDesigner.cs
- NavigationPropertyAccessor.cs
- smtpconnection.cs
- Configuration.cs
- BulletChrome.cs
- EventsTab.cs
- RuleCache.cs
- TdsEnums.cs
- HandlerFactoryCache.cs
- CustomValidator.cs
- XmlExpressionDumper.cs
- MessageQuerySet.cs
- FunctionImportElement.cs
- listitem.cs
- Literal.cs
- CultureTable.cs
- DataControlLinkButton.cs
- LoginName.cs
- SpellerStatusTable.cs
- SerializationSectionGroup.cs
- parserscommon.cs
- PrivateFontCollection.cs
- InstancePersistenceCommand.cs
- ReadOnlyDataSource.cs
- Vector3DAnimationBase.cs
- IdentityReference.cs
- XPathParser.cs
- ReferenceEqualityComparer.cs
- XmlWriter.cs
- DataGridViewTopLeftHeaderCell.cs
- PointAnimationBase.cs
- DataServiceHost.cs
- safemediahandle.cs
- FileNotFoundException.cs
- PropertySet.cs
- DispatcherExceptionFilterEventArgs.cs
- NetNamedPipeBinding.cs
- safex509handles.cs
- HttpListenerTimeoutManager.cs
- TrackPointCollection.cs
- ApplyTemplatesAction.cs
- ViewPort3D.cs
- HtmlToClrEventProxy.cs
- Attributes.cs
- HtmlControlPersistable.cs
- ReturnType.cs
- ListSortDescription.cs
- CookieProtection.cs
- BindingList.cs
- FontStyleConverter.cs
- WebBrowserProgressChangedEventHandler.cs
- ExportFileRequest.cs
- SeparatorAutomationPeer.cs
- WeakRefEnumerator.cs
- CfgParser.cs
- ResolveDuplexAsyncResult.cs
- MemoryStream.cs
- PerformanceCounterLib.cs
- AssemblyAttributesGoHere.cs
- XmlSchemaSequence.cs
- Literal.cs
- SqlBuilder.cs
- PolyLineSegmentFigureLogic.cs
- CopyOnWriteList.cs
- FileFormatException.cs
- UserMapPath.cs
- FixedPageStructure.cs
- XmlParserContext.cs
- ObjectViewEntityCollectionData.cs
- ExeConfigurationFileMap.cs
- TiffBitmapEncoder.cs
- MaskInputRejectedEventArgs.cs
- DataServiceQueryOfT.cs
- ParentQuery.cs
- IconBitmapDecoder.cs
- SqlConnectionHelper.cs
- RedirectionProxy.cs
- TransformerTypeCollection.cs
- OAVariantLib.cs
- ObjectHandle.cs
- HtmlTable.cs
- DynamicResourceExtension.cs
- XmlKeywords.cs
- TraceSection.cs
- TTSVoice.cs
- GeneralTransform2DTo3DTo2D.cs
- PageCache.cs
- PrintControllerWithStatusDialog.cs
- DynamicResourceExtensionConverter.cs
- PreProcessor.cs
- ShaperBuffers.cs
- HandledMouseEvent.cs
- TransactionOptions.cs
- ColorConvertedBitmapExtension.cs
- NamespaceCollection.cs
- PreDigestedSignedInfo.cs
- AccessDataSourceView.cs
- DefaultTextStoreTextComposition.cs
- NativeWindow.cs