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
- TableCell.cs
- MonikerSyntaxException.cs
- XmlSchemaCompilationSettings.cs
- WindowsListViewSubItem.cs
- UnsafeCollabNativeMethods.cs
- SearchForVirtualItemEventArgs.cs
- PermissionToken.cs
- DictionaryBase.cs
- DockAndAnchorLayout.cs
- SoundPlayerAction.cs
- HttpListenerResponse.cs
- FlowDocumentView.cs
- ActiveDocumentEvent.cs
- KeyInstance.cs
- DataGridViewRowsRemovedEventArgs.cs
- ExportException.cs
- ArglessEventHandlerProxy.cs
- Vector3DCollectionConverter.cs
- ListViewTableCell.cs
- LogRecordSequence.cs
- TagPrefixAttribute.cs
- ParameterCollection.cs
- XsltLoader.cs
- DeferredSelectedIndexReference.cs
- CompilationUtil.cs
- EventBindingService.cs
- ChangeDirector.cs
- ToolStripSeparatorRenderEventArgs.cs
- ImportFileRequest.cs
- TargetConverter.cs
- MethodToken.cs
- RoleServiceManager.cs
- WindowsRichEdit.cs
- SystemGatewayIPAddressInformation.cs
- DataPagerFieldCollection.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- DynamicDataRoute.cs
- XmlLinkedNode.cs
- HtmlInputButton.cs
- UnionExpr.cs
- WpfKnownMemberInvoker.cs
- XPathNodeInfoAtom.cs
- MaterialGroup.cs
- _Win32.cs
- ParserHooks.cs
- ColorPalette.cs
- Brush.cs
- XmlSerializationReader.cs
- SqlInternalConnectionTds.cs
- ClientData.cs
- Matrix.cs
- StateChangeEvent.cs
- SpeechRecognizer.cs
- AssemblyLoader.cs
- SerialErrors.cs
- MetadataCache.cs
- HatchBrush.cs
- TableLayoutCellPaintEventArgs.cs
- SoapFault.cs
- ConstraintCollection.cs
- _TLSstream.cs
- TypeNameConverter.cs
- Line.cs
- ObjectContextServiceProvider.cs
- NativeMethodsOther.cs
- DesignerToolStripControlHost.cs
- XsltContext.cs
- TrackingStringDictionary.cs
- JavaScriptString.cs
- SafeNativeMethodsMilCoreApi.cs
- ObjectPersistData.cs
- PrivacyNoticeElement.cs
- StyleTypedPropertyAttribute.cs
- BindingFormattingDialog.cs
- Visual3D.cs
- XPathAncestorQuery.cs
- Model3DGroup.cs
- TrackBarRenderer.cs
- TrackingProfileDeserializationException.cs
- TableRowGroup.cs
- RightsManagementPermission.cs
- MailFileEditor.cs
- ScriptManagerProxy.cs
- SoapExtensionTypeElementCollection.cs
- XmlCodeExporter.cs
- Preprocessor.cs
- DecoderFallback.cs
- TemplateParser.cs
- IgnoreFileBuildProvider.cs
- CardSpaceSelector.cs
- BindingList.cs
- WebConfigurationHost.cs
- NeutralResourcesLanguageAttribute.cs
- xml.cs
- DecoderFallback.cs
- WebPartTracker.cs
- ExcludePathInfo.cs
- MsmqIntegrationMessagePool.cs
- EditingScope.cs
- LongValidator.cs