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
- DataSet.cs
- MetadataUtil.cs
- IgnoreFileBuildProvider.cs
- XmlSerializer.cs
- COAUTHINFO.cs
- MetadataAssemblyHelper.cs
- Invariant.cs
- WindowsProgressbar.cs
- Schema.cs
- NamespaceQuery.cs
- AssemblyBuilder.cs
- FillErrorEventArgs.cs
- RecordBuilder.cs
- ArrayList.cs
- _HTTPDateParse.cs
- ListComponentEditorPage.cs
- MemberInfoSerializationHolder.cs
- PeerNameResolver.cs
- LinkedList.cs
- HashCodeCombiner.cs
- PersonalizationStateQuery.cs
- InvalidPropValue.cs
- AuthenticationConfig.cs
- ChannelParameterCollection.cs
- SqlTransaction.cs
- UrlPath.cs
- Pair.cs
- SafeViewOfFileHandle.cs
- ServiceDeploymentInfo.cs
- SendMailErrorEventArgs.cs
- RefreshPropertiesAttribute.cs
- StatusBarPanelClickEvent.cs
- CodeGotoStatement.cs
- DistributedTransactionPermission.cs
- HtmlInputPassword.cs
- XslVisitor.cs
- Window.cs
- SignatureToken.cs
- RequestCache.cs
- SiteMapNodeItem.cs
- PackageDigitalSignatureManager.cs
- HtmlHead.cs
- FlowDocumentScrollViewer.cs
- ViewValidator.cs
- DecimalFormatter.cs
- InertiaExpansionBehavior.cs
- KoreanLunisolarCalendar.cs
- AnnouncementClient.cs
- DataGridColumnCollectionEditor.cs
- WebServiceMethodData.cs
- DocumentStatusResources.cs
- SqlInternalConnection.cs
- XPathNodeList.cs
- BuildProvider.cs
- Quad.cs
- SecurityTokenResolver.cs
- WebException.cs
- XmlSchemaComplexContentRestriction.cs
- CheckedListBox.cs
- PromptStyle.cs
- MultiTouchSystemGestureLogic.cs
- CustomWebEventKey.cs
- WizardPanelChangingEventArgs.cs
- ProcessModuleCollection.cs
- Vector3DAnimationBase.cs
- StylusDevice.cs
- ReachNamespaceInfo.cs
- CookieProtection.cs
- SuppressIldasmAttribute.cs
- QilTargetType.cs
- EventSourceCreationData.cs
- ListViewGroup.cs
- TableDetailsCollection.cs
- CustomAttribute.cs
- Compensation.cs
- XmlName.cs
- WindowExtensionMethods.cs
- OleDbFactory.cs
- ServiceModelStringsVersion1.cs
- DeferredSelectedIndexReference.cs
- TextParaClient.cs
- TimeIntervalCollection.cs
- RelationshipSet.cs
- PolyLineSegmentFigureLogic.cs
- DefaultTextStore.cs
- HtmlAnchor.cs
- ImageBrush.cs
- FirewallWrapper.cs
- InputMethodStateTypeInfo.cs
- HttpCachePolicy.cs
- XmlSerializerSection.cs
- SponsorHelper.cs
- List.cs
- ModelItemImpl.cs
- DeferredTextReference.cs
- Events.cs
- ComponentEvent.cs
- DocumentPageView.cs
- ToolBarPanel.cs
- SchemaComplexType.cs