Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Documents / TextSegment.cs / 1305600 / TextSegment.cs
//---------------------------------------------------------------------------- // // File: TextSegment.cs // // Copyright (C) Microsoft Corporation. All rights reserved. // // Description: A pair of TextPositions used to denote a run of TextContainer content. // //--------------------------------------------------------------------------- namespace System.Windows.Documents { using MS.Internal; using System.Collections; ////// A pair of TextPositions used to denote a run of TextContainer content. /// // internal struct TextSegment { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors ////// Constructor. /// /// /// Position preceeding the TextSegment's content. /// /// /// Position following the TextSegment's content. /// ////// If startPosition or endPosition are TextNavigators (derived from /// TextPointer), the TextSegment constructor will store new TextPointer /// instances internally. The values returned by the Start and End /// properties are always immutable TextPositions. /// internal TextSegment(ITextPointer startPosition, ITextPointer endPosition) : this(startPosition, endPosition, false) { } ////// Constructor. /// /// /// Position preceeding the TextSegment's content. /// /// /// Position following the TextSegment's content. /// /// /// Whether preserves LogicalDirection of start and end positions. /// internal TextSegment(ITextPointer startPosition, ITextPointer endPosition, bool preserveLogicalDirection) { ValidationHelper.VerifyPositionPair(startPosition, endPosition); if (startPosition.CompareTo(endPosition) == 0) { // To preserve segment emptiness // we use the same instance of a pointer // for both segment ends. _start = startPosition.GetFrozenPointer(startPosition.LogicalDirection); _end = _start; } else { Invariant.Assert(startPosition.CompareTo(endPosition) < 0); _start = startPosition.GetFrozenPointer(preserveLogicalDirection ? startPosition.LogicalDirection : LogicalDirection.Backward); _end = endPosition.GetFrozenPointer(preserveLogicalDirection ? endPosition.LogicalDirection : LogicalDirection.Forward); } } #endregion Constructors //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods ////// returns true if the segment contains a given position /// // internal bool Contains(ITextPointer position) { return (!this.IsNull && this._start.CompareTo(position) <= 0 && position.CompareTo(this._end) <= 0); } #endregion Internal Methods //------------------------------------------------------ // // Internal Properties // //------------------------------------------------------ #region Internal Properties ////// Position preceeding the TextSegment's content. /// internal ITextPointer Start { get { return _start; } } ////// Position following the TextSegment's content. /// internal ITextPointer End { get { return _end; } } internal bool IsNull { get { return _start == null || _end == null; } } #endregion Internal Properties ////// The "TextSegment.Null" value. /// ////// TextSegtemt.Null is used in contexts where text segment is missing. /// internal static readonly TextSegment Null = new TextSegment(); //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ #region Private Fields // Position preceeding the TextSegment's content. private readonly ITextPointer _start; // Position following the TextSegment's content. private readonly ITextPointer _end; #endregion Private Fields } } // 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
- StateValidator.cs
- FocusManager.cs
- XhtmlTextWriter.cs
- CollectionViewGroupRoot.cs
- DataBinder.cs
- GridViewHeaderRowPresenter.cs
- DataBoundControlDesigner.cs
- HttpApplication.cs
- DetailsViewCommandEventArgs.cs
- SessionEndingEventArgs.cs
- RouteUrlExpressionBuilder.cs
- ScriptControlManager.cs
- AttributeData.cs
- XPathDocument.cs
- AdornedElementPlaceholder.cs
- UserPersonalizationStateInfo.cs
- GroupBox.cs
- Matrix3D.cs
- CompositeActivityTypeDescriptorProvider.cs
- DataGridCellEditEndingEventArgs.cs
- PointAnimationClockResource.cs
- CapabilitiesUse.cs
- Formatter.cs
- WebPartTransformer.cs
- RectAnimationClockResource.cs
- CodeTypeDelegate.cs
- ObjectMemberMapping.cs
- ScriptingScriptResourceHandlerSection.cs
- WorkflowDebuggerSteppingAttribute.cs
- WebBrowserSiteBase.cs
- XamlBrushSerializer.cs
- ErrorTableItemStyle.cs
- CodeActivity.cs
- ClientScriptManager.cs
- FileSystemWatcher.cs
- PackageController.cs
- DBConcurrencyException.cs
- XmlSchemaType.cs
- RuntimeEnvironment.cs
- cryptoapiTransform.cs
- PresentationTraceSources.cs
- Logging.cs
- SetStateEventArgs.cs
- HttpStreamMessageEncoderFactory.cs
- XmlSchemas.cs
- SeekStoryboard.cs
- UserNameSecurityTokenAuthenticator.cs
- DataException.cs
- SQLMoney.cs
- ComPlusThreadInitializer.cs
- UnsafeNativeMethods.cs
- PropertyConverter.cs
- MethodCallTranslator.cs
- SiteMap.cs
- DashStyle.cs
- FrameSecurityDescriptor.cs
- CollectionType.cs
- JsonGlobals.cs
- ActiveXHost.cs
- GeneratedView.cs
- NavigationProperty.cs
- FileFormatException.cs
- RSAOAEPKeyExchangeFormatter.cs
- Rectangle.cs
- EventLogSession.cs
- ExceptionUtil.cs
- WindowsFormsHostAutomationPeer.cs
- EnvelopedSignatureTransform.cs
- CustomWebEventKey.cs
- PartialCachingControl.cs
- ToolStripSeparatorRenderEventArgs.cs
- RuntimeCompatibilityAttribute.cs
- XmlAttributes.cs
- BmpBitmapEncoder.cs
- JournalNavigationScope.cs
- ServerReliableChannelBinder.cs
- EntryPointNotFoundException.cs
- VirtualizedCellInfoCollection.cs
- ScriptHandlerFactory.cs
- TableCellAutomationPeer.cs
- GuidelineCollection.cs
- MutexSecurity.cs
- AttachmentCollection.cs
- ExpandCollapseIsCheckedConverter.cs
- SafeNativeMethods.cs
- SingleObjectCollection.cs
- AssertSection.cs
- PathTooLongException.cs
- SchemaMerger.cs
- TextRangeEdit.cs
- DayRenderEvent.cs
- DataSysAttribute.cs
- BitmapCodecInfo.cs
- ConfigXmlComment.cs
- KeysConverter.cs
- SRGSCompiler.cs
- ChunkedMemoryStream.cs
- CrossSiteScriptingValidation.cs
- ConvertEvent.cs
- ViewCellSlot.cs