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
- wgx_render.cs
- ZipIORawDataFileBlock.cs
- ContextMenu.cs
- AnonymousIdentificationModule.cs
- Compiler.cs
- SoapFormatExtensions.cs
- DataControlImageButton.cs
- ColorConverter.cs
- PlanCompiler.cs
- AutoResizedEvent.cs
- PathData.cs
- ConfigurationErrorsException.cs
- WsatRegistrationHeader.cs
- ListenerChannelContext.cs
- ConfigurationSection.cs
- OperatingSystem.cs
- InfocardExtendedInformationEntry.cs
- IPEndPoint.cs
- RequestResizeEvent.cs
- CompensationHandlingFilter.cs
- ButtonFieldBase.cs
- IndividualDeviceConfig.cs
- DocumentsTrace.cs
- SocketManager.cs
- ProcessThreadCollection.cs
- PackageRelationshipCollection.cs
- FixedFindEngine.cs
- DataGridViewCellFormattingEventArgs.cs
- RijndaelManaged.cs
- Dynamic.cs
- OutOfProcStateClientManager.cs
- TaskFactory.cs
- RectangleConverter.cs
- ZeroOpNode.cs
- MatrixKeyFrameCollection.cs
- StorageComplexTypeMapping.cs
- TypeToken.cs
- RtfToXamlReader.cs
- XmlMembersMapping.cs
- ValueQuery.cs
- DataGridViewColumnConverter.cs
- CharAnimationBase.cs
- ScriptResourceHandler.cs
- ScalarType.cs
- PaintEvent.cs
- DecimalFormatter.cs
- AccessKeyManager.cs
- StorageMappingItemCollection.cs
- HttpModuleActionCollection.cs
- CodeObject.cs
- Flattener.cs
- DataPagerCommandEventArgs.cs
- CssTextWriter.cs
- UiaCoreApi.cs
- Delegate.cs
- IISUnsafeMethods.cs
- InstanceLockLostException.cs
- Quaternion.cs
- SchemaImporterExtensionsSection.cs
- SplashScreen.cs
- Constants.cs
- Normalizer.cs
- ToolStripGripRenderEventArgs.cs
- HtmlTable.cs
- TransformedBitmap.cs
- WithStatement.cs
- TabControlAutomationPeer.cs
- FileChangeNotifier.cs
- Vector3D.cs
- XamlReader.cs
- TypeElementCollection.cs
- HttpCacheVaryByContentEncodings.cs
- HostVisual.cs
- LOSFormatter.cs
- NullableBoolConverter.cs
- XmlNodeChangedEventManager.cs
- RadioButtonFlatAdapter.cs
- CodePageEncoding.cs
- MemberMaps.cs
- PhoneCall.cs
- ObjectNotFoundException.cs
- WindowsRebar.cs
- RealizationContext.cs
- HyperLink.cs
- EndpointFilterProvider.cs
- ColorAnimationUsingKeyFrames.cs
- DescendantQuery.cs
- AuthorizationRule.cs
- HtmlInputHidden.cs
- NonDualMessageSecurityOverHttp.cs
- AspCompat.cs
- AggregatePushdown.cs
- Model3D.cs
- DataSourceCacheDurationConverter.cs
- CustomGrammar.cs
- OperationFormatUse.cs
- HybridObjectCache.cs
- SqlWebEventProvider.cs
- PagerSettings.cs
- Journal.cs