Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Core / CSharp / System / Windows / Media / textformatting / CharacterHit.cs / 1 / 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
- ExpressionPrinter.cs
- StylusButtonEventArgs.cs
- SliderAutomationPeer.cs
- PlanCompiler.cs
- AssertUtility.cs
- EntityDataSourceContextCreatingEventArgs.cs
- TextTreeInsertElementUndoUnit.cs
- LOSFormatter.cs
- PagesSection.cs
- CSharpCodeProvider.cs
- VarRefManager.cs
- ToolStripPanelCell.cs
- NavigationExpr.cs
- EntryIndex.cs
- SamlSubjectStatement.cs
- PEFileEvidenceFactory.cs
- UserMapPath.cs
- TextEncodedRawTextWriter.cs
- ErrorWebPart.cs
- TypeInfo.cs
- XmlNamespaceMappingCollection.cs
- ExitEventArgs.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- ConfigXmlDocument.cs
- LingerOption.cs
- SslStream.cs
- ApplicationTrust.cs
- XmlDocument.cs
- Int32AnimationBase.cs
- CompressStream.cs
- CompilerParameters.cs
- Annotation.cs
- _AuthenticationState.cs
- WMICapabilities.cs
- FilteredDataSetHelper.cs
- FamilyTypefaceCollection.cs
- MessageSecurityProtocolFactory.cs
- DictionaryContent.cs
- Stroke2.cs
- ColorConvertedBitmap.cs
- StructuralObject.cs
- DbProviderFactoriesConfigurationHandler.cs
- DataSpaceManager.cs
- ManagedWndProcTracker.cs
- XmlIgnoreAttribute.cs
- PrintPreviewControl.cs
- MediaPlayer.cs
- StrokeNode.cs
- CLSCompliantAttribute.cs
- SpeakProgressEventArgs.cs
- PointLight.cs
- TextViewBase.cs
- StructuredTypeEmitter.cs
- BuildResultCache.cs
- ObjectTypeMapping.cs
- ProviderCollection.cs
- Executor.cs
- NameValueCollection.cs
- TempFiles.cs
- PartialTrustVisibleAssembly.cs
- PingReply.cs
- codemethodreferenceexpression.cs
- DataControlField.cs
- Win32MouseDevice.cs
- Rijndael.cs
- RoutedEventHandlerInfo.cs
- MetabaseSettings.cs
- HideDisabledControlAdapter.cs
- WebException.cs
- XmlSerializerFactory.cs
- TreeViewTemplateSelector.cs
- PropertyEmitter.cs
- TraceUtils.cs
- PasswordTextNavigator.cs
- GroupItemAutomationPeer.cs
- XamlWriter.cs
- DirectoryNotFoundException.cs
- MultiView.cs
- ControlAdapter.cs
- ProcessRequestArgs.cs
- ImageDrawing.cs
- BasicExpandProvider.cs
- SqlDataSourceCommandParser.cs
- StylusPointProperties.cs
- HttpCacheVaryByContentEncodings.cs
- CodeDOMUtility.cs
- System.Data_BID.cs
- XmlCustomFormatter.cs
- Margins.cs
- ipaddressinformationcollection.cs
- XPathNavigator.cs
- FileEnumerator.cs
- HtmlInputButton.cs
- CompilationLock.cs
- CompositeDataBoundControl.cs
- SourceChangedEventArgs.cs
- InvokeHandlers.cs
- TrackingServices.cs
- StateWorkerRequest.cs
- SamlAction.cs