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
- DocumentViewerHelper.cs
- QuaternionAnimation.cs
- Selector.cs
- Nodes.cs
- DataObject.cs
- ServiceHttpModule.cs
- WsdlExporter.cs
- DataSvcMapFileSerializer.cs
- MenuItemAutomationPeer.cs
- SizeConverter.cs
- SqlBulkCopy.cs
- SqlInternalConnectionTds.cs
- DbTypeMap.cs
- XmlBoundElement.cs
- EditorAttribute.cs
- UnsafeNativeMethods.cs
- XmlSchemaExternal.cs
- AsymmetricSignatureFormatter.cs
- X509Chain.cs
- RetriableClipboard.cs
- MultiPropertyDescriptorGridEntry.cs
- StickyNoteHelper.cs
- TraceData.cs
- Util.cs
- PropertyGridView.cs
- WriteableBitmap.cs
- PageThemeParser.cs
- FormViewDeleteEventArgs.cs
- TypeDefinition.cs
- StyleSelector.cs
- ArraySortHelper.cs
- CheckBoxRenderer.cs
- QualifierSet.cs
- XmlBinaryWriterSession.cs
- ApplicationServiceManager.cs
- TaskCanceledException.cs
- SynchronizationContext.cs
- WebServiceResponse.cs
- PersianCalendar.cs
- SystemDiagnosticsSection.cs
- PrincipalPermission.cs
- BlockCollection.cs
- validation.cs
- ListenerElementsCollection.cs
- UnknownBitmapDecoder.cs
- TriggerCollection.cs
- SafeCryptoHandles.cs
- ColorMatrix.cs
- TdsParser.cs
- XmlSchemaElement.cs
- StorageRoot.cs
- DataRelation.cs
- EventManager.cs
- __Filters.cs
- FixUp.cs
- TextEmbeddedObject.cs
- SqlCacheDependencySection.cs
- StylusEventArgs.cs
- DataGridViewRowStateChangedEventArgs.cs
- AsyncOperationLifetimeManager.cs
- ListSortDescriptionCollection.cs
- ForeignConstraint.cs
- BindMarkupExtensionSerializer.cs
- InitializingNewItemEventArgs.cs
- sqlser.cs
- FamilyTypefaceCollection.cs
- PropertyCollection.cs
- CompilerHelpers.cs
- EventLogPropertySelector.cs
- LogExtentCollection.cs
- PermissionRequestEvidence.cs
- WorkflowInstanceRecord.cs
- SeparatorAutomationPeer.cs
- TypeSystemProvider.cs
- ClrProviderManifest.cs
- COM2ExtendedUITypeEditor.cs
- Rfc2898DeriveBytes.cs
- HttpListenerException.cs
- FastEncoder.cs
- ServicePointManagerElement.cs
- XmlDataFileEditor.cs
- WebResourceUtil.cs
- EditorOptionAttribute.cs
- ContourSegment.cs
- DurableMessageDispatchInspector.cs
- TextMetrics.cs
- BaseDataBoundControl.cs
- SqlProviderManifest.cs
- ImageFormat.cs
- WebDescriptionAttribute.cs
- GetMemberBinder.cs
- MsmqIntegrationProcessProtocolHandler.cs
- Expression.cs
- DateTimeOffset.cs
- Graph.cs
- ApplicationProxyInternal.cs
- ClientCultureInfo.cs
- TextReturnReader.cs
- CollectionViewGroupInternal.cs
- HMACMD5.cs