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
- ObjectReferenceStack.cs
- ConfigurationException.cs
- ServicePointManager.cs
- LineServicesRun.cs
- PropertyValueUIItem.cs
- ValidateNames.cs
- InvokeWebServiceDesigner.cs
- MsmqInputSessionChannelListener.cs
- TargetControlTypeCache.cs
- TakeOrSkipWhileQueryOperator.cs
- DbgCompiler.cs
- UnsignedPublishLicense.cs
- TextCharacters.cs
- BitmapDecoder.cs
- ContentValidator.cs
- TraceXPathNavigator.cs
- DebugHandleTracker.cs
- HwndMouseInputProvider.cs
- Odbc32.cs
- PrintControllerWithStatusDialog.cs
- ExpressionBinding.cs
- BigInt.cs
- ImageSourceValueSerializer.cs
- Base64Decoder.cs
- XmlDataSourceDesigner.cs
- XsltArgumentList.cs
- XamlSerializerUtil.cs
- DetailsViewUpdatedEventArgs.cs
- WmpBitmapEncoder.cs
- ValueUtilsSmi.cs
- SafeNativeMethodsMilCoreApi.cs
- CommandHelper.cs
- NameSpaceExtractor.cs
- DiscoveryDocumentSerializer.cs
- ContentFileHelper.cs
- ColumnResizeAdorner.cs
- AddingNewEventArgs.cs
- ErrorFormatter.cs
- SafeSerializationManager.cs
- StorageConditionPropertyMapping.cs
- WindowsGraphicsWrapper.cs
- ScrollBarRenderer.cs
- CompoundFileDeflateTransform.cs
- EventListener.cs
- VarInfo.cs
- RMEnrollmentPage2.cs
- SignatureConfirmations.cs
- ResourcesGenerator.cs
- UIElementIsland.cs
- ApplicationContext.cs
- Base64Encoding.cs
- StreamResourceInfo.cs
- RouteItem.cs
- PublisherIdentityPermission.cs
- ToolBar.cs
- MimeTypeMapper.cs
- WeakHashtable.cs
- FileChangesMonitor.cs
- CfgParser.cs
- WinFormsSecurity.cs
- VarInfo.cs
- DecimalConstantAttribute.cs
- SqlRemoveConstantOrderBy.cs
- ScopelessEnumAttribute.cs
- XmlAtomicValue.cs
- MatrixCamera.cs
- OleDbConnectionInternal.cs
- DesignerContextDescriptor.cs
- PrivateFontCollection.cs
- AbstractSvcMapFileLoader.cs
- EdmScalarPropertyAttribute.cs
- MetaType.cs
- Command.cs
- XamlDebuggerXmlReader.cs
- RichTextBoxConstants.cs
- XhtmlBasicTextViewAdapter.cs
- RadioButtonFlatAdapter.cs
- HtmlTernaryTree.cs
- RankException.cs
- TextBoxView.cs
- FormDesigner.cs
- ServiceHost.cs
- Int64KeyFrameCollection.cs
- SmtpFailedRecipientException.cs
- SoapFormatter.cs
- NavigationPropertyEmitter.cs
- RegexCharClass.cs
- RMEnrollmentPage1.cs
- AutomationAttributeInfo.cs
- GeneralTransform3DCollection.cs
- ModuleBuilderData.cs
- OracleParameterBinding.cs
- ComponentManagerBroker.cs
- WebDisplayNameAttribute.cs
- DeriveBytes.cs
- TextContainerHelper.cs
- listitem.cs
- UInt16Storage.cs
- DataGridViewImageColumn.cs
- MarshalByValueComponent.cs