Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / MS / Internal / PtsHost / ListParagraph.cs / 1305600 / ListParagraph.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: ListParagraph.cs // // Description: ListParagraph represents collection of list items. // // History: // 06/06/2003 : [....] - moving from Avalon branch. // //--------------------------------------------------------------------------- #pragma warning disable 1634, 1691 // avoid generating warnings about unknown // message numbers and unknown pragmas for PRESharp contol using System; using System.Diagnostics; using System.Windows; using System.Windows.Documents; using MS.Internal.Text; namespace MS.Internal.PtsHost { ////// ListParagraph represents collection of list items. /// internal sealed class ListParagraph : ContainerParagraph { ////// Constructor. /// /// /// Element associated with paragraph. /// /// /// Content's structural cache /// internal ListParagraph(DependencyObject element, StructuralCache structuralCache) : base(element, structuralCache) { } ////// CreateParaclient /// /// /// OUT: opaque to PTS paragraph client /// internal override void CreateParaclient( out IntPtr paraClientHandle) { #pragma warning disable 6518 // Disable PRESharp warning 6518. ListParaClient is an UnmamangedHandle, that adds itself // to HandleMapper that holds a reference to it. PTS manages lifetime of this object, and // calls DestroyParaclient to get rid of it. DestroyParaclient will call Dispose() on the object // and remove it from HandleMapper. ListParaClient paraClient = new ListParaClient(this); paraClientHandle = paraClient.Handle; #pragma warning restore 6518 } ////// Determine paragraph type at the current TextPointer and /// create it. Only ListItem elements are considered. Any other /// content is skipped. /// /// /// TextPointer at which paragraph is to be created /// /// /// True if empty paragraph is acceptable /// ////// BaseParagraph that was created /// protected override BaseParagraph GetParagraph(ITextPointer textPointer, bool fEmptyOk) { Invariant.Assert(textPointer is TextPointer); BaseParagraph paragraph = null; while (paragraph == null) { TextPointerContext runType = textPointer.GetPointerContext(LogicalDirection.Forward); if (runType == TextPointerContext.ElementStart) { TextElement element = ((TextPointer)textPointer).GetAdjacentElementFromOuterPosition(LogicalDirection.Forward); if (element is ListItem) { // paragraph = new ListItemParagraph(element, StructuralCache); break; } else if (element is List) { // paragraph = new ListParagraph(element, StructuralCache); break; } // Skip all elements, which are not valid list item children if (((TextPointer)textPointer).IsFrozen) { // Need to clone TextPointer before moving it. textPointer = textPointer.CreatePointer(); } textPointer.MoveToPosition(element.ElementEnd); } else if (runType == TextPointerContext.ElementEnd) { // End of list, if the same as Owner of associated element // Skip content otherwise if (Element == ((TextPointer)textPointer).Parent) { break; } if (((TextPointer)textPointer).IsFrozen) { // Need to clone TextPointer before moving it. textPointer = textPointer.CreatePointer(); } textPointer.MoveToNextContextPosition(LogicalDirection.Forward); } else { // Skip content if (((TextPointer)textPointer).IsFrozen) { // Need to clone TextPointer before moving it. textPointer = textPointer.CreatePointer(); } textPointer.MoveToNextContextPosition(LogicalDirection.Forward); } } if (paragraph != null) { StructuralCache.CurrentFormatContext.DependentMax = (TextPointer)textPointer; } return paragraph; } } } #pragma warning enable 1634, 1691 // 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
- MemoryFailPoint.cs
- RegexWriter.cs
- TableLayoutStyle.cs
- TdsParameterSetter.cs
- Underline.cs
- SiteMapNode.cs
- CultureInfoConverter.cs
- DataSourceControlBuilder.cs
- MediaPlayerState.cs
- ValueSerializerAttribute.cs
- Keyboard.cs
- HttpCachePolicy.cs
- DuplicateDetector.cs
- MetaColumn.cs
- WindowsGraphicsCacheManager.cs
- DataGridHeaderBorder.cs
- EventLogPermissionEntryCollection.cs
- AppDomainFactory.cs
- ReferentialConstraint.cs
- SchemaElementLookUpTableEnumerator.cs
- WebPartConnectionsEventArgs.cs
- DynamicQueryableWrapper.cs
- InternalConfigHost.cs
- SessionSymmetricMessageSecurityProtocolFactory.cs
- CompoundFileStorageReference.cs
- FullTextBreakpoint.cs
- ClientFormsIdentity.cs
- SqlRemoveConstantOrderBy.cs
- RoleManagerSection.cs
- WorkflowTraceTransfer.cs
- _SecureChannel.cs
- DataControlImageButton.cs
- DBDataPermission.cs
- ToolboxService.cs
- DragStartedEventArgs.cs
- TraceRecord.cs
- FieldDescriptor.cs
- CommunicationObjectAbortedException.cs
- SmtpNtlmAuthenticationModule.cs
- HttpWebRequest.cs
- ProcessThreadCollection.cs
- PathNode.cs
- ColumnMapCopier.cs
- SchemaAttDef.cs
- RelatedImageListAttribute.cs
- FunctionGenerator.cs
- MonitorWrapper.cs
- AssociationSetMetadata.cs
- NoResizeSelectionBorderGlyph.cs
- LightweightCodeGenerator.cs
- PropertyPathWorker.cs
- BindingContext.cs
- Attributes.cs
- XmlSchemaObjectTable.cs
- FileSecurity.cs
- XmlMessageFormatter.cs
- RegexRunner.cs
- DataServiceSaveChangesEventArgs.cs
- StringBlob.cs
- _WinHttpWebProxyDataBuilder.cs
- LayoutEngine.cs
- IsolatedStoragePermission.cs
- LinqDataSourceDeleteEventArgs.cs
- XsltLoader.cs
- Vars.cs
- _SafeNetHandles.cs
- DataServiceQueryException.cs
- XmlSchemaRedefine.cs
- XmlEventCache.cs
- CachedPathData.cs
- EntityDataSourceWrapperPropertyDescriptor.cs
- DataObjectMethodAttribute.cs
- SafeThemeHandle.cs
- ListMarkerLine.cs
- RotateTransform3D.cs
- WeakReferenceKey.cs
- XmlDownloadManager.cs
- SelectionProviderWrapper.cs
- Console.cs
- Sequence.cs
- Subtree.cs
- itemelement.cs
- TypeConverterHelper.cs
- RenamedEventArgs.cs
- DataPager.cs
- TraceHwndHost.cs
- ObjRef.cs
- XmlElement.cs
- ManipulationVelocities.cs
- LicenseProviderAttribute.cs
- OleDbReferenceCollection.cs
- PointHitTestParameters.cs
- ParamArrayAttribute.cs
- SocketInformation.cs
- Panel.cs
- BamlTreeMap.cs
- filewebrequest.cs
- InputMethodStateChangeEventArgs.cs
- OneOfConst.cs
- SeverityFilter.cs