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
- SHA1CryptoServiceProvider.cs
- SchemaObjectWriter.cs
- Win32NamedPipes.cs
- LinkArea.cs
- GlyphTypeface.cs
- HtmlToClrEventProxy.cs
- WindowsGraphics.cs
- ProviderConnectionPoint.cs
- DataGridViewComboBoxCell.cs
- GetIsBrowserClientRequest.cs
- odbcmetadatacolumnnames.cs
- MatrixAnimationUsingPath.cs
- ToolStrip.cs
- TemplateParser.cs
- Vertex.cs
- WorkflowTraceTransfer.cs
- WebPartManagerInternals.cs
- Decorator.cs
- WeakReference.cs
- CustomAttribute.cs
- SqlDataReader.cs
- CheckBoxPopupAdapter.cs
- SelectionList.cs
- ActivityTypeResolver.xaml.cs
- ObjectDataSourceDisposingEventArgs.cs
- CreateUserWizardStep.cs
- XmlSchemaSimpleTypeRestriction.cs
- KnownBoxes.cs
- EnumValAlphaComparer.cs
- Mouse.cs
- DataTableReader.cs
- ComNativeDescriptor.cs
- HitTestParameters3D.cs
- MatrixTransform.cs
- EntityDataSourceValidationException.cs
- DesigntimeLicenseContext.cs
- ObjectIDGenerator.cs
- BreakRecordTable.cs
- PeerNameResolver.cs
- SimpleBitVector32.cs
- ExtensionDataReader.cs
- RemotingConfiguration.cs
- Ticks.cs
- GridViewUpdatedEventArgs.cs
- ZipIOCentralDirectoryFileHeader.cs
- DataColumnMapping.cs
- NativeMethods.cs
- TailPinnedEventArgs.cs
- smtpconnection.cs
- IsolatedStorageException.cs
- BitmapData.cs
- PrintingPermissionAttribute.cs
- ValidatedControlConverter.cs
- ServiceReference.cs
- MimeWriter.cs
- GroupBox.cs
- RangeValidator.cs
- SerTrace.cs
- XmlEventCache.cs
- BitmapEffectDrawing.cs
- RectangleConverter.cs
- HostedBindingBehavior.cs
- NegotiationTokenAuthenticator.cs
- HuffModule.cs
- ProcessModelSection.cs
- OneToOneMappingSerializer.cs
- Assert.cs
- RegexParser.cs
- IDQuery.cs
- PlaceHolder.cs
- ParseChildrenAsPropertiesAttribute.cs
- RequestStatusBarUpdateEventArgs.cs
- TrackBarRenderer.cs
- XmlEventCache.cs
- RightsManagementPermission.cs
- Opcode.cs
- TableAdapterManagerMethodGenerator.cs
- RoutedEvent.cs
- InvalidCastException.cs
- XmlValueConverter.cs
- HttpTransportSecurityElement.cs
- ObjectNavigationPropertyMapping.cs
- PropertyItem.cs
- precedingquery.cs
- HtmlInputCheckBox.cs
- StreamSecurityUpgradeInitiatorBase.cs
- ItemCheckEvent.cs
- Latin1Encoding.cs
- OrderedDictionaryStateHelper.cs
- FormDesigner.cs
- JoinTreeNode.cs
- MessageQuerySet.cs
- TabItemWrapperAutomationPeer.cs
- SortAction.cs
- shaperfactoryquerycacheentry.cs
- WebPartAuthorizationEventArgs.cs
- GenericTransactionFlowAttribute.cs
- DocumentationServerProtocol.cs
- xmlNames.cs
- ObjectParameter.cs