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
- BridgeDataRecord.cs
- MSHTMLHost.cs
- PackageStore.cs
- FixedPageProcessor.cs
- CharacterBufferReference.cs
- Clipboard.cs
- ListViewGroup.cs
- UnionCodeGroup.cs
- DBPropSet.cs
- PackageProperties.cs
- PropertyChangedEventManager.cs
- WindowsStatusBar.cs
- WebBrowser.cs
- Point.cs
- CreateUserWizardStep.cs
- XmlSerializationWriter.cs
- MenuTracker.cs
- BamlLocalizableResource.cs
- SessionState.cs
- DataProviderNameConverter.cs
- SimpleType.cs
- MetadataArtifactLoaderFile.cs
- ChangeTracker.cs
- SqlClientMetaDataCollectionNames.cs
- EmptyStringExpandableObjectConverter.cs
- InputLanguageManager.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- ScriptServiceAttribute.cs
- StreamUpgradeAcceptor.cs
- Misc.cs
- ViewKeyConstraint.cs
- ValueConversionAttribute.cs
- TransportElement.cs
- KeyboardEventArgs.cs
- InheritedPropertyChangedEventArgs.cs
- columnmapkeybuilder.cs
- ErrorHandlerModule.cs
- XmlTextReaderImpl.cs
- EditingMode.cs
- Pkcs7Signer.cs
- FixedFlowMap.cs
- CompressEmulationStream.cs
- AspNetCompatibilityRequirementsAttribute.cs
- WinEventTracker.cs
- TagPrefixCollection.cs
- GlobalizationSection.cs
- AddInIpcChannel.cs
- versioninfo.cs
- CqlLexer.cs
- MetabaseSettings.cs
- SimpleWorkerRequest.cs
- SmtpFailedRecipientException.cs
- OleServicesContext.cs
- xmlformatgeneratorstatics.cs
- CurrentChangingEventManager.cs
- initElementDictionary.cs
- BlobPersonalizationState.cs
- MemoryMappedView.cs
- Int32Rect.cs
- XmlCustomFormatter.cs
- HierarchicalDataSourceDesigner.cs
- ConnectionPoolManager.cs
- ControllableStoryboardAction.cs
- FontStretchConverter.cs
- ChildTable.cs
- Rect.cs
- MeshGeometry3D.cs
- XamlPathDataSerializer.cs
- Operator.cs
- DrawingContextWalker.cs
- SecurityContextTokenValidationException.cs
- DynamicResourceExtensionConverter.cs
- EditingCommands.cs
- MemoryMappedView.cs
- ObjectConverter.cs
- TemplateXamlParser.cs
- ExpressionNode.cs
- Stylus.cs
- AssemblyBuilder.cs
- StoreItemCollection.cs
- NativeMethods.cs
- NamedObject.cs
- ParameterReplacerVisitor.cs
- DataGridViewToolTip.cs
- UICuesEvent.cs
- GenericIdentity.cs
- NominalTypeEliminator.cs
- HostedImpersonationContext.cs
- WebPartManagerInternals.cs
- XmlSchemaType.cs
- RolePrincipal.cs
- Subtract.cs
- WebPartDesigner.cs
- MulticastNotSupportedException.cs
- LabelDesigner.cs
- FactoryId.cs
- LabelDesigner.cs
- DocumentApplication.cs
- StrongName.cs
- CallTemplateAction.cs