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
- DataObjectEventArgs.cs
- BindingEntityInfo.cs
- CharStorage.cs
- ColorAnimationBase.cs
- CommonProperties.cs
- BufferAllocator.cs
- ListComponentEditor.cs
- DbProviderServices.cs
- SystemResourceKey.cs
- CodeDomSerializer.cs
- OpenFileDialog.cs
- SHA512CryptoServiceProvider.cs
- TemplateBindingExpression.cs
- SafeJobHandle.cs
- TakeQueryOptionExpression.cs
- NameValueCollection.cs
- EncryptRequest.cs
- SecurityCriticalDataForSet.cs
- DataListItem.cs
- WebPartAddingEventArgs.cs
- SQLDoubleStorage.cs
- GeneralTransform2DTo3D.cs
- DocumentEventArgs.cs
- WebPartDisplayModeEventArgs.cs
- TreeNodeCollection.cs
- HasCopySemanticsAttribute.cs
- DrawingContextFlattener.cs
- ParseElement.cs
- SessionState.cs
- WeakRefEnumerator.cs
- UnknownBitmapDecoder.cs
- InstanceCreationEditor.cs
- Soap11ServerProtocol.cs
- DebugInfo.cs
- TextDecorationCollectionConverter.cs
- SapiGrammar.cs
- GuidelineSet.cs
- SqlRowUpdatedEvent.cs
- RedirectionProxy.cs
- ItemCheckedEvent.cs
- Help.cs
- RoleBoolean.cs
- AmbientEnvironment.cs
- SchemaImporterExtensionsSection.cs
- XmlSchemaAttribute.cs
- PrintEvent.cs
- Span.cs
- SystemIcmpV4Statistics.cs
- WindowsRichEditRange.cs
- RegisteredArrayDeclaration.cs
- ComponentRenameEvent.cs
- TripleDES.cs
- ErasingStroke.cs
- IsolatedStorage.cs
- ReadOnlyDictionary.cs
- MimeMapping.cs
- DispatcherProcessingDisabled.cs
- controlskin.cs
- ClientTargetSection.cs
- WebPartMenuStyle.cs
- _MultipleConnectAsync.cs
- QilInvokeEarlyBound.cs
- FramingEncoders.cs
- PreloadHost.cs
- BindingSource.cs
- NumberFormatter.cs
- _HeaderInfoTable.cs
- DataFormats.cs
- WebSysDescriptionAttribute.cs
- DoneReceivingAsyncResult.cs
- ConfigXmlSignificantWhitespace.cs
- MsmqAppDomainProtocolHandler.cs
- HtmlTextArea.cs
- TraceAsyncResult.cs
- IssuedTokenClientCredential.cs
- VariableQuery.cs
- RootBrowserWindowAutomationPeer.cs
- __Error.cs
- X509PeerCertificateElement.cs
- DetailsViewUpdateEventArgs.cs
- SplineKeyFrames.cs
- ConfigurationSection.cs
- MimeXmlImporter.cs
- ListControl.cs
- BinaryFormatter.cs
- EventQueueState.cs
- DecimalConstantAttribute.cs
- ValidatorCompatibilityHelper.cs
- PrintPreviewDialog.cs
- DocumentReferenceCollection.cs
- HtmlEncodedRawTextWriter.cs
- HttpConfigurationSystem.cs
- UserControlParser.cs
- ObjectStateEntry.cs
- XsltException.cs
- EventLogInternal.cs
- OrderPreservingMergeHelper.cs
- Int32AnimationBase.cs
- SemaphoreSecurity.cs
- TypeUtil.cs