Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- EntityDataSourceDesignerHelper.cs
- WCFModelStrings.Designer.cs
- COSERVERINFO.cs
- TextRange.cs
- RequestDescription.cs
- DynamicResourceExtension.cs
- BamlResourceDeserializer.cs
- FileDialog_Vista.cs
- PersonalizableTypeEntry.cs
- Imaging.cs
- MILUtilities.cs
- TypeNameConverter.cs
- LineMetrics.cs
- DynamicPropertyReader.cs
- NativeCppClassAttribute.cs
- DataGridPagerStyle.cs
- RadioButtonStandardAdapter.cs
- ItemChangedEventArgs.cs
- FilterUserControlBase.cs
- XPathScanner.cs
- ipaddressinformationcollection.cs
- Sql8ExpressionRewriter.cs
- XPathNodeIterator.cs
- SqlUDTStorage.cs
- SmtpLoginAuthenticationModule.cs
- ArrayItemReference.cs
- QueryReaderSettings.cs
- DBCSCodePageEncoding.cs
- RewritingValidator.cs
- LinkedResource.cs
- SessionParameter.cs
- FileChangeNotifier.cs
- WebService.cs
- QuaternionValueSerializer.cs
- DeviceContext.cs
- ConnectionStringsExpressionBuilder.cs
- securestring.cs
- COM2AboutBoxPropertyDescriptor.cs
- RegexMatch.cs
- BehaviorEditorPart.cs
- BaseValidator.cs
- ToolStripScrollButton.cs
- MetabaseServerConfig.cs
- LineServicesRun.cs
- AuthenticationModuleElementCollection.cs
- Region.cs
- DummyDataSource.cs
- WeakReference.cs
- _LocalDataStore.cs
- SqlReferenceCollection.cs
- BamlStream.cs
- QueryContinueDragEvent.cs
- CannotUnloadAppDomainException.cs
- ZipFileInfo.cs
- ImageFormatConverter.cs
- InvalidProgramException.cs
- TextEffect.cs
- EventEntry.cs
- WCFBuildProvider.cs
- BindingRestrictions.cs
- UdpConstants.cs
- BigInt.cs
- ConsumerConnectionPoint.cs
- WebServiceResponseDesigner.cs
- UDPClient.cs
- PagerSettings.cs
- SqlClientPermission.cs
- LicenseProviderAttribute.cs
- IntegerValidator.cs
- CheckedListBox.cs
- Vertex.cs
- RuleRefElement.cs
- CancelEventArgs.cs
- StringWriter.cs
- ConnectionPoint.cs
- Run.cs
- DbExpressionVisitor.cs
- ScriptReference.cs
- WebException.cs
- ReservationCollection.cs
- DebugControllerThread.cs
- DbConnectionInternal.cs
- AnnotationResourceChangedEventArgs.cs
- ConditionalDesigner.cs
- VisualState.cs
- ListBase.cs
- LifetimeServices.cs
- Timeline.cs
- PatternMatcher.cs
- RawMouseInputReport.cs
- MouseButton.cs
- ReplacementText.cs
- DbMetaDataFactory.cs
- AttributedMetaModel.cs
- TextEndOfSegment.cs
- ToolBar.cs
- ObjectQueryState.cs
- URLAttribute.cs
- CqlBlock.cs
- LogicalExpr.cs