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
- FactoryId.cs
- COM2Properties.cs
- WebScriptMetadataMessageEncoderFactory.cs
- IndexerReference.cs
- ConfigXmlText.cs
- _HeaderInfo.cs
- NullRuntimeConfig.cs
- TrackingStringDictionary.cs
- FaultConverter.cs
- RoutedEventHandlerInfo.cs
- CreateSequence.cs
- DataStreamFromComStream.cs
- TransformPatternIdentifiers.cs
- ReadOnlyActivityGlyph.cs
- PropertyBuilder.cs
- RootNamespaceAttribute.cs
- QualifierSet.cs
- EditorBrowsableAttribute.cs
- RepeatBehaviorConverter.cs
- SafeLibraryHandle.cs
- IPEndPointCollection.cs
- TiffBitmapDecoder.cs
- SqlDependencyUtils.cs
- ConditionalBranch.cs
- HealthMonitoringSectionHelper.cs
- CommonDialog.cs
- MultitargetUtil.cs
- ReservationCollection.cs
- EnumerableCollectionView.cs
- WindowVisualStateTracker.cs
- Journaling.cs
- SmiContextFactory.cs
- DocumentSequence.cs
- InitializationEventAttribute.cs
- AnimationTimeline.cs
- DispatcherTimer.cs
- ProfilePropertySettingsCollection.cs
- MultiByteCodec.cs
- SqlErrorCollection.cs
- SendKeys.cs
- ActivityPreviewDesigner.cs
- EntityDataSourceSelectedEventArgs.cs
- StructuralObject.cs
- RegisteredScript.cs
- EventWaitHandle.cs
- CallbackValidator.cs
- Exception.cs
- OutputCacheProfile.cs
- StorageEndPropertyMapping.cs
- RawKeyboardInputReport.cs
- DataGridBoundColumn.cs
- MultiplexingFormatMapping.cs
- MissingFieldException.cs
- ModelVisual3D.cs
- TemplateColumn.cs
- DataGridViewAutoSizeModeEventArgs.cs
- FilteredDataSetHelper.cs
- SmiConnection.cs
- BinaryObjectInfo.cs
- PersonalizationProvider.cs
- CacheDependency.cs
- EncryptedReference.cs
- MDIControlStrip.cs
- COAUTHINFO.cs
- ToolBarTray.cs
- ParameterBuilder.cs
- WebPartZoneBase.cs
- Calendar.cs
- EncoderParameter.cs
- SecurityToken.cs
- BCryptNative.cs
- MeshGeometry3D.cs
- FileLevelControlBuilderAttribute.cs
- DeploymentSection.cs
- SamlSecurityToken.cs
- BitmapSizeOptions.cs
- CrossAppDomainChannel.cs
- PaperSource.cs
- PackageDigitalSignature.cs
- CodeParameterDeclarationExpressionCollection.cs
- SubtreeProcessor.cs
- RunClient.cs
- SqlDataSourceEnumerator.cs
- LabelExpression.cs
- ModulesEntry.cs
- ReadOnlyDataSourceView.cs
- GlyphTypeface.cs
- ZipFileInfoCollection.cs
- CodeSubDirectory.cs
- FormatException.cs
- CapabilitiesUse.cs
- GenericXmlSecurityToken.cs
- DbConnectionStringCommon.cs
- OperationAbortedException.cs
- ComponentResourceManager.cs
- GeneralTransformGroup.cs
- TableItemStyle.cs
- PlainXmlSerializer.cs
- SeverityFilter.cs
- Permission.cs