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
- EventSourceCreationData.cs
- PropertyInfoSet.cs
- CodeTypeMemberCollection.cs
- InputDevice.cs
- DrawingGroup.cs
- PropertySet.cs
- SelectionWordBreaker.cs
- PageCodeDomTreeGenerator.cs
- ElementHost.cs
- DataGridViewCellParsingEventArgs.cs
- TabItem.cs
- ResourceManager.cs
- StrokeFIndices.cs
- DataGridViewTopRowAccessibleObject.cs
- DataKeyArray.cs
- basecomparevalidator.cs
- LiteralControl.cs
- ExpressionBuilder.cs
- RequestNavigateEventArgs.cs
- DynamicILGenerator.cs
- BoolExpression.cs
- SchemaMerger.cs
- RepeaterDataBoundAdapter.cs
- GeneratedView.cs
- SyndicationDeserializer.cs
- BatchWriter.cs
- SqlDataSourceStatusEventArgs.cs
- ToolStripComboBox.cs
- ClosureBinding.cs
- Animatable.cs
- HtmlInputPassword.cs
- ControlAdapter.cs
- FontWeights.cs
- StringToken.cs
- ConfigXmlCDataSection.cs
- RuntimeConfig.cs
- Nodes.cs
- ReferenceConverter.cs
- Site.cs
- CodePropertyReferenceExpression.cs
- RealProxy.cs
- SafeLibraryHandle.cs
- PrintPreviewDialog.cs
- TypeSystem.cs
- SimpleRecyclingCache.cs
- Inflater.cs
- EndpointDesigner.cs
- GuidConverter.cs
- GridSplitterAutomationPeer.cs
- DataGridViewButtonCell.cs
- SafeThreadHandle.cs
- StorageComplexTypeMapping.cs
- PolygonHotSpot.cs
- RoleService.cs
- PointHitTestParameters.cs
- Transform.cs
- ThreadAbortException.cs
- TextEditorCharacters.cs
- PreProcessInputEventArgs.cs
- JavaScriptSerializer.cs
- XmlSerializationReader.cs
- EventWaitHandle.cs
- WizardPanelChangingEventArgs.cs
- HttpCachePolicyWrapper.cs
- infer.cs
- CodeAttachEventStatement.cs
- Grant.cs
- RuntimeTransactionHandle.cs
- X509Utils.cs
- UnsafeNetInfoNativeMethods.cs
- WebPartEditorCancelVerb.cs
- TemplateBaseAction.cs
- TraceProvider.cs
- UIElementIsland.cs
- TrackingParticipant.cs
- TextServicesCompartmentContext.cs
- DbDataReader.cs
- XmlSchemaSimpleTypeRestriction.cs
- LinqMaximalSubtreeNominator.cs
- InheritanceContextChangedEventManager.cs
- Font.cs
- UiaCoreApi.cs
- OdbcEnvironmentHandle.cs
- SqlNodeTypeOperators.cs
- ObjectToIdCache.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- PackUriHelper.cs
- HttpDigestClientCredential.cs
- EnumerableRowCollection.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- BindingContext.cs
- ReadOnlyTernaryTree.cs
- StatusBarPanel.cs
- BitmapCache.cs
- EndpointDiscoveryMetadata11.cs
- XPathNode.cs
- WebService.cs
- CallTemplateAction.cs
- FileLevelControlBuilderAttribute.cs
- StructuredTypeEmitter.cs