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
- EditorZoneAutoFormat.cs
- ComplexPropertyEntry.cs
- Funcletizer.cs
- DecimalKeyFrameCollection.cs
- RadioButton.cs
- BaseParaClient.cs
- MetabaseSettingsIis7.cs
- WebPartActionVerb.cs
- CopyNodeSetAction.cs
- SamlSerializer.cs
- Command.cs
- ViewGenResults.cs
- MatcherBuilder.cs
- SecurityElement.cs
- DefaultHttpHandler.cs
- KeyTimeConverter.cs
- ListControl.cs
- ResponseBodyWriter.cs
- BuildProviderAppliesToAttribute.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- SerializerWriterEventHandlers.cs
- ArglessEventHandlerProxy.cs
- SchemaImporter.cs
- ParenthesizePropertyNameAttribute.cs
- XmlWriter.cs
- CollectionBase.cs
- XamlInt32CollectionSerializer.cs
- SqlProfileProvider.cs
- XPathParser.cs
- SqlExpander.cs
- InvalidDataException.cs
- SystemWebCachingSectionGroup.cs
- ScriptBehaviorDescriptor.cs
- DbgCompiler.cs
- Delay.cs
- UserControlCodeDomTreeGenerator.cs
- PolyLineSegment.cs
- ChannelFactoryRefCache.cs
- RemoteWebConfigurationHostServer.cs
- HitTestFilterBehavior.cs
- GeneralTransform3DGroup.cs
- Classification.cs
- SuppressIldasmAttribute.cs
- HtmlGenericControl.cs
- Attribute.cs
- OdbcParameter.cs
- ChtmlPhoneCallAdapter.cs
- TextTrailingCharacterEllipsis.cs
- PrintingPermissionAttribute.cs
- TimersDescriptionAttribute.cs
- ContainerSelectorGlyph.cs
- XMLSyntaxException.cs
- SiteOfOriginContainer.cs
- StylusShape.cs
- FormClosingEvent.cs
- SelectionBorderGlyph.cs
- OracleTimeSpan.cs
- DbProviderServices.cs
- HtmlInputHidden.cs
- EnvelopedPkcs7.cs
- DynamicUpdateCommand.cs
- HttpWebRequest.cs
- BaseResourcesBuildProvider.cs
- ActiveXHost.cs
- SqlInternalConnectionTds.cs
- ServicePerformanceCounters.cs
- ToolStripDropDown.cs
- hresults.cs
- BuildManagerHost.cs
- ErrorReporting.cs
- Soap12ProtocolImporter.cs
- WindowsBrush.cs
- XsltSettings.cs
- BorderGapMaskConverter.cs
- ControlCachePolicy.cs
- HttpAsyncResult.cs
- HMACSHA384.cs
- DefaultValueTypeConverter.cs
- KeyValuePairs.cs
- ExpressionBuilder.cs
- ResourcesGenerator.cs
- TableColumn.cs
- PipeStream.cs
- PartitionedStream.cs
- BaseProcessor.cs
- FileAuthorizationModule.cs
- CssStyleCollection.cs
- XmlAttributeOverrides.cs
- ResourcePart.cs
- WindowsGraphics2.cs
- PostBackOptions.cs
- ContainerParaClient.cs
- Crypto.cs
- HMAC.cs
- EdmValidator.cs
- DependencyObjectPropertyDescriptor.cs
- InkCanvas.cs
- TypeConverterHelper.cs
- PreDigestedSignedInfo.cs
- TranslateTransform.cs