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
- PeerApplication.cs
- Int32Animation.cs
- _PooledStream.cs
- ProfileGroupSettings.cs
- LinearGradientBrush.cs
- ClientScriptManager.cs
- CheckBoxBaseAdapter.cs
- AnonymousIdentificationModule.cs
- XXXInfos.cs
- UnsettableComboBox.cs
- CryptoConfig.cs
- InstanceNotReadyException.cs
- XmlQueryTypeFactory.cs
- SeparatorAutomationPeer.cs
- CodeLabeledStatement.cs
- PropertyEmitter.cs
- ValueType.cs
- ListView.cs
- Application.cs
- QilStrConcat.cs
- XmlValueConverter.cs
- BufferedResponseStream.cs
- DbUpdateCommandTree.cs
- DataDocumentXPathNavigator.cs
- Resources.Designer.cs
- DoubleKeyFrameCollection.cs
- NegatedCellConstant.cs
- HitTestWithPointDrawingContextWalker.cs
- GridPatternIdentifiers.cs
- SafeLibraryHandle.cs
- Header.cs
- CodeParameterDeclarationExpressionCollection.cs
- XhtmlStyleClass.cs
- InfoCardBaseException.cs
- RedirectionProxy.cs
- CodePropertyReferenceExpression.cs
- DataRowComparer.cs
- ItemsPresenter.cs
- RequestQueryProcessor.cs
- TimeSpanOrInfiniteValidator.cs
- SqlRecordBuffer.cs
- TextServicesDisplayAttributePropertyRanges.cs
- Validator.cs
- SQLBinaryStorage.cs
- BuildTopDownAttribute.cs
- RepeaterCommandEventArgs.cs
- TreeNodeCollectionEditorDialog.cs
- ValueSerializerAttribute.cs
- Codec.cs
- XmlUnspecifiedAttribute.cs
- TransformerConfigurationWizardBase.cs
- ConversionHelper.cs
- FlowLayout.cs
- SqlTypeConverter.cs
- RuntimeCompatibilityAttribute.cs
- BamlResourceSerializer.cs
- HwndMouseInputProvider.cs
- ListItemCollection.cs
- Main.cs
- _NestedSingleAsyncResult.cs
- XamlInterfaces.cs
- MailAddressCollection.cs
- GCHandleCookieTable.cs
- _ContextAwareResult.cs
- DESCryptoServiceProvider.cs
- _ServiceNameStore.cs
- WindowsComboBox.cs
- entityreference_tresulttype.cs
- SafeSecurityHandles.cs
- UrlPath.cs
- EntityUtil.cs
- XamlSerializationHelper.cs
- SymbolType.cs
- Math.cs
- TextDecorationLocationValidation.cs
- TextDecoration.cs
- MonitorWrapper.cs
- Stack.cs
- SoapSchemaExporter.cs
- ForEachAction.cs
- ArrayList.cs
- CommandDevice.cs
- Command.cs
- XmlLinkedNode.cs
- CompatibleIComparer.cs
- ParameterCollectionEditor.cs
- IISMapPath.cs
- SByteConverter.cs
- TakeQueryOptionExpression.cs
- TypeToken.cs
- CurrencyManager.cs
- PageRanges.cs
- _IPv4Address.cs
- X509CertificateCollection.cs
- XmlNodeReader.cs
- ToolStripContentPanelDesigner.cs
- WindowsFormsHelpers.cs
- ConsumerConnectionPointCollection.cs
- XPathExpr.cs
- RenderDataDrawingContext.cs