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
- GeometryDrawing.cs
- XmlSchemaObject.cs
- SqlProcedureAttribute.cs
- cryptoapiTransform.cs
- DataViewSettingCollection.cs
- ToolStripDropDownItem.cs
- ProcessThread.cs
- NativeObjectSecurity.cs
- EndEvent.cs
- ObjectDataSource.cs
- PeerPresenceInfo.cs
- XmlResolver.cs
- HtmlTableRow.cs
- TransformerInfo.cs
- XmlRawWriterWrapper.cs
- PublisherIdentityPermission.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- DebuggerAttributes.cs
- MD5.cs
- AnimationClock.cs
- HttpCapabilitiesEvaluator.cs
- CompatibleIComparer.cs
- ModuleBuilderData.cs
- EventLogEntry.cs
- TableStyle.cs
- ExpressionBuilder.cs
- MessageBodyDescription.cs
- DataObjectMethodAttribute.cs
- TypeListConverter.cs
- SqlError.cs
- MetadataUtilsSmi.cs
- WebPartConnectionsCancelEventArgs.cs
- Splitter.cs
- AnnotationHighlightLayer.cs
- NameValueSectionHandler.cs
- WebPartsSection.cs
- PolicyLevel.cs
- SqlMetaData.cs
- mediaeventshelper.cs
- TimeSpanStorage.cs
- TextEditorSelection.cs
- RelationshipManager.cs
- Rect3D.cs
- Math.cs
- FieldNameLookup.cs
- Color.cs
- AttributeCollection.cs
- SyndicationItem.cs
- JournalEntry.cs
- PropertyReferenceExtension.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- Menu.cs
- CompressedStack.cs
- WebFormsRootDesigner.cs
- BoolExpressionVisitors.cs
- MutexSecurity.cs
- BufferedResponseStream.cs
- PointLightBase.cs
- ChangeInterceptorAttribute.cs
- ConfigXmlComment.cs
- InternalConfigRoot.cs
- ViewBase.cs
- DataSpaceManager.cs
- WebPartVerbCollection.cs
- XmlRawWriter.cs
- SocketElement.cs
- OpenTypeLayout.cs
- PointCollection.cs
- ComPersistableTypeElement.cs
- ComponentGuaranteesAttribute.cs
- EntityKeyElement.cs
- SpAudioStreamWrapper.cs
- VariableModifiersHelper.cs
- WebPartCloseVerb.cs
- EdmSchemaAttribute.cs
- CodeIdentifiers.cs
- ToolStripStatusLabel.cs
- ViewCellRelation.cs
- smtppermission.cs
- xmlfixedPageInfo.cs
- TypeBuilderInstantiation.cs
- ServiceHostingEnvironmentSection.cs
- VisualBasicReference.cs
- TextSegment.cs
- RouteUrlExpressionBuilder.cs
- QilFactory.cs
- ActivityDesignerHelper.cs
- DataGridColumnCollection.cs
- LogEntryHeaderv1Deserializer.cs
- IdentitySection.cs
- SqlDataSourceFilteringEventArgs.cs
- MergeFailedEvent.cs
- NaturalLanguageHyphenator.cs
- NetStream.cs
- EntityProviderServices.cs
- unsafeIndexingFilterStream.cs
- IODescriptionAttribute.cs
- DataSourceUtil.cs
- TreeBuilderXamlTranslator.cs
- DataListItemEventArgs.cs