Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // // 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
- storepermissionattribute.cs
- GridViewUpdateEventArgs.cs
- TextRunCache.cs
- DocumentPageHost.cs
- HttpContextServiceHost.cs
- WebControlsSection.cs
- DataGridSortCommandEventArgs.cs
- HijriCalendar.cs
- PostBackOptions.cs
- WebPartConnectionCollection.cs
- TraceInternal.cs
- TrackingDataItemValue.cs
- XPathNode.cs
- Timeline.cs
- RelationshipDetailsCollection.cs
- ConditionalExpression.cs
- ActivationArguments.cs
- Material.cs
- _AutoWebProxyScriptEngine.cs
- MessagePartDescriptionCollection.cs
- RegisteredHiddenField.cs
- StructuralCache.cs
- SingleSelectRootGridEntry.cs
- MDIWindowDialog.cs
- ReflectionTypeLoadException.cs
- ListItemsPage.cs
- LinkLabelLinkClickedEvent.cs
- CodeTypeReferenceExpression.cs
- CodeGroup.cs
- HtmlInputCheckBox.cs
- ProcessInputEventArgs.cs
- ImmComposition.cs
- CryptoApi.cs
- AvTrace.cs
- SubqueryRules.cs
- FileInfo.cs
- Int32Collection.cs
- RemotingConfiguration.cs
- PrintDialogException.cs
- KeyGestureValueSerializer.cs
- Int64AnimationBase.cs
- DescendentsWalkerBase.cs
- Gdiplus.cs
- DataTableReaderListener.cs
- BordersPage.cs
- RemotingServices.cs
- RuntimeCompatibilityAttribute.cs
- OrderByLifter.cs
- ChtmlPhoneCallAdapter.cs
- Evidence.cs
- ProtectedProviderSettings.cs
- OdbcParameterCollection.cs
- ProcessRequestArgs.cs
- FontConverter.cs
- BinaryObjectReader.cs
- TriState.cs
- NotifyParentPropertyAttribute.cs
- safemediahandle.cs
- DeflateStream.cs
- JsonByteArrayDataContract.cs
- ObjectSecurity.cs
- WhitespaceReader.cs
- ListViewInsertedEventArgs.cs
- ProcessManager.cs
- CurrentChangedEventManager.cs
- Visitors.cs
- XappLauncher.cs
- FactoryGenerator.cs
- RemotingHelper.cs
- NameGenerator.cs
- FormViewActionList.cs
- ItemsPanelTemplate.cs
- ChtmlTextWriter.cs
- BindingExpression.cs
- FixedFlowMap.cs
- HtmlInputFile.cs
- VideoDrawing.cs
- embossbitmapeffect.cs
- OLEDB_Enum.cs
- ProxyWebPartConnectionCollection.cs
- BindValidator.cs
- ConfigurationManagerHelperFactory.cs
- ColumnHeaderConverter.cs
- RectangleHotSpot.cs
- SafeRightsManagementHandle.cs
- AssemblyInfo.cs
- CapabilitiesAssignment.cs
- ObjectAnimationUsingKeyFrames.cs
- SectionInformation.cs
- AttachedProperty.cs
- XPathSingletonIterator.cs
- SafePointer.cs
- Action.cs
- SmiContext.cs
- AppliedDeviceFiltersDialog.cs
- FileSystemEnumerable.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- PolyBezierSegmentFigureLogic.cs
- DragEvent.cs
- Brush.cs