Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- NetworkCredential.cs
- XmlDataSource.cs
- DocumentViewerBaseAutomationPeer.cs
- DataGridTable.cs
- ISCIIEncoding.cs
- XsltInput.cs
- TableColumn.cs
- WSDualHttpSecurityMode.cs
- XmlHelper.cs
- Expander.cs
- SessionPageStateSection.cs
- ZeroOpNode.cs
- ErrorWrapper.cs
- TextTreeDeleteContentUndoUnit.cs
- ModelUIElement3D.cs
- GuidTagList.cs
- EntityViewContainer.cs
- XmlArrayAttribute.cs
- MarkupProperty.cs
- XmlSchemaRedefine.cs
- StatusBar.cs
- DbBuffer.cs
- BamlWriter.cs
- ElementProxy.cs
- GenericWebPart.cs
- BamlRecordHelper.cs
- FamilyTypeface.cs
- RoutedCommand.cs
- CodeChecksumPragma.cs
- Lease.cs
- TextModifierScope.cs
- EntityParameter.cs
- RoleManagerModule.cs
- TagPrefixInfo.cs
- InputScopeManager.cs
- TileModeValidation.cs
- ScriptModule.cs
- ListBindableAttribute.cs
- EntityDataSourceDesigner.cs
- AtomServiceDocumentSerializer.cs
- FixedMaxHeap.cs
- ConfigXmlCDataSection.cs
- ModelItemKeyValuePair.cs
- SymDocumentType.cs
- ImageCodecInfoPrivate.cs
- AmbiguousMatchException.cs
- LinearGradientBrush.cs
- smtpconnection.cs
- ConfigurationLocation.cs
- SequentialWorkflowHeaderFooter.cs
- ToolBarTray.cs
- CompoundFileDeflateTransform.cs
- XmlAnyAttributeAttribute.cs
- ArrayEditor.cs
- WebControlsSection.cs
- NetNamedPipeSecurityMode.cs
- HttpDictionary.cs
- UndirectedGraph.cs
- RIPEMD160Managed.cs
- OverrideMode.cs
- Drawing.cs
- Converter.cs
- WebPartDisplayModeCancelEventArgs.cs
- XmlSchemaInclude.cs
- ProfilePropertySettingsCollection.cs
- Directory.cs
- CustomServiceCredentials.cs
- PresentationSource.cs
- BitmapCodecInfo.cs
- Compiler.cs
- QueryTask.cs
- Opcode.cs
- ByValueEqualityComparer.cs
- EntitySet.cs
- login.cs
- TextBoxBase.cs
- FormViewRow.cs
- ElementUtil.cs
- Helper.cs
- _FtpDataStream.cs
- IssuedTokenClientElement.cs
- SystemPens.cs
- PointLightBase.cs
- StreamWithDictionary.cs
- DesignerTransactionCloseEvent.cs
- PersonalizableTypeEntry.cs
- StringOutput.cs
- UrlAuthorizationModule.cs
- WebControlParameterProxy.cs
- _HelperAsyncResults.cs
- ListViewGroup.cs
- JoinTreeNode.cs
- PrivilegedConfigurationManager.cs
- XmlUnspecifiedAttribute.cs
- WebPartConnectionsDisconnectVerb.cs
- CLSCompliantAttribute.cs
- SafeNativeMethodsMilCoreApi.cs
- SqlRowUpdatedEvent.cs
- PipeException.cs
- TextEditorCopyPaste.cs