Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / 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 [....]/sites/Avalon/Specs/Glyph%20Run%20hit%20testing%20and%20caret%20placement%20API.htm#CharacterHit // // // History: // 11/30/2004 : [....] - 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- LineProperties.cs
- HTMLTagNameToTypeMapper.cs
- HotSpotCollection.cs
- panel.cs
- DataGridrowEditEndingEventArgs.cs
- ObjectDataSourceSelectingEventArgs.cs
- TemplateKey.cs
- HtmlMobileTextWriter.cs
- ConnectionProviderAttribute.cs
- SqlDependencyUtils.cs
- ImageSource.cs
- ComPersistableTypeElement.cs
- BuildProvider.cs
- ArgIterator.cs
- CompoundFileStreamReference.cs
- GridItemCollection.cs
- DocumentXPathNavigator.cs
- TreePrinter.cs
- TableAdapterManagerMethodGenerator.cs
- Point4D.cs
- OpenTypeLayout.cs
- SqlParameterizer.cs
- OletxTransactionManager.cs
- Dynamic.cs
- SqlOuterApplyReducer.cs
- PtsCache.cs
- UdpConstants.cs
- SqlCharStream.cs
- Splitter.cs
- HitTestParameters3D.cs
- AppDomainShutdownMonitor.cs
- Assert.cs
- CqlBlock.cs
- TextServicesCompartmentContext.cs
- InfoCardConstants.cs
- ServiceDescription.cs
- Stacktrace.cs
- AsyncStreamReader.cs
- M3DUtil.cs
- ClockGroup.cs
- AssemblyAttributes.cs
- CodeCompileUnit.cs
- SslStream.cs
- WebEventCodes.cs
- Crc32Helper.cs
- CategoryAttribute.cs
- ScriptComponentDescriptor.cs
- TabItemAutomationPeer.cs
- ApplicationServiceManager.cs
- BorderSidesEditor.cs
- HandledMouseEvent.cs
- EasingKeyFrames.cs
- CodeDOMUtility.cs
- DbConnectionClosed.cs
- OdbcDataReader.cs
- AxisAngleRotation3D.cs
- XmlSerializer.cs
- TimestampInformation.cs
- UInt16Storage.cs
- RangeValidator.cs
- TimeIntervalCollection.cs
- TabletDevice.cs
- CheckBox.cs
- HttpFileCollectionWrapper.cs
- _CacheStreams.cs
- LocalBuilder.cs
- HtmlInputButton.cs
- PagePropertiesChangingEventArgs.cs
- TableItemStyle.cs
- DLinqDataModelProvider.cs
- ListParaClient.cs
- ProxyManager.cs
- oledbconnectionstring.cs
- ExtentKey.cs
- QilIterator.cs
- RelationshipFixer.cs
- figurelength.cs
- SortedList.cs
- CorrelationToken.cs
- ObjectDataSourceView.cs
- JsonDataContract.cs
- QuestionEventArgs.cs
- MutexSecurity.cs
- TransportReplyChannelAcceptor.cs
- Brush.cs
- LineVisual.cs
- hresults.cs
- OpCodes.cs
- EncryptedData.cs
- DragEventArgs.cs
- ProviderCollection.cs
- connectionpool.cs
- DiscoveryClientElement.cs
- SecureEnvironment.cs
- WindowsPrincipal.cs
- GridViewEditEventArgs.cs
- Pen.cs
- DataControlField.cs
- ButtonFieldBase.cs
- DesignBindingConverter.cs