Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / MS / Internal / PtsHost / ListParagraph.cs / 1 / 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
- XamlBrushSerializer.cs
- InfocardChannelParameter.cs
- _StreamFramer.cs
- WebControlToolBoxItem.cs
- SetIterators.cs
- ScalarType.cs
- AssemblyFilter.cs
- StyleCollection.cs
- VariableElement.cs
- TransactionInformation.cs
- webeventbuffer.cs
- Version.cs
- CommonDialog.cs
- PackUriHelper.cs
- BitmapEffectRenderDataResource.cs
- AutomationEvent.cs
- ErrorTolerantObjectWriter.cs
- CultureSpecificCharacterBufferRange.cs
- ActionNotSupportedException.cs
- ComNativeDescriptor.cs
- AssociationEndMember.cs
- ObjectCloneHelper.cs
- PropertyMapper.cs
- ConditionChanges.cs
- InstanceLockLostException.cs
- DetailsViewRowCollection.cs
- TextPatternIdentifiers.cs
- LogLogRecordEnumerator.cs
- RemotingServices.cs
- Composition.cs
- Queue.cs
- IdnElement.cs
- newinstructionaction.cs
- SuppressMessageAttribute.cs
- ControlDesigner.cs
- PeerNameRecordCollection.cs
- QueryOperationResponseOfT.cs
- CodeAttributeDeclarationCollection.cs
- StandardBindingImporter.cs
- NestPullup.cs
- Color.cs
- DataBindingHandlerAttribute.cs
- XmlILOptimizerVisitor.cs
- CSharpCodeProvider.cs
- StorageComplexTypeMapping.cs
- CategoriesDocument.cs
- ServerValidateEventArgs.cs
- XpsInterleavingPolicy.cs
- HMACMD5.cs
- SequenceDesigner.cs
- EncryptedKey.cs
- SelectedDatesCollection.cs
- DataGridViewToolTip.cs
- XmlSchemaSimpleTypeList.cs
- StringUtil.cs
- WebContext.cs
- OleDbTransaction.cs
- DetailsViewPagerRow.cs
- TemplateBindingExtension.cs
- GraphicsContainer.cs
- WebPartDesigner.cs
- MetaTableHelper.cs
- DoubleStorage.cs
- SplineKeyFrames.cs
- ActivityDesigner.cs
- UrlUtility.cs
- HttpPostProtocolImporter.cs
- Completion.cs
- HtmlInputHidden.cs
- RectAnimationBase.cs
- NamedPipeAppDomainProtocolHandler.cs
- SqlDelegatedTransaction.cs
- Grant.cs
- XmlValueConverter.cs
- PropertyItemInternal.cs
- QilPatternFactory.cs
- SessionState.cs
- DockPanel.cs
- FreezableCollection.cs
- Win32Interop.cs
- ControlParser.cs
- SmtpFailedRecipientsException.cs
- RegexWorker.cs
- SessionStateUtil.cs
- SqlFacetAttribute.cs
- AddInContractAttribute.cs
- DataControlHelper.cs
- XmlNode.cs
- ConditionalAttribute.cs
- BufferBuilder.cs
- SQLDouble.cs
- CopyOfAction.cs
- UInt16.cs
- QilIterator.cs
- ProcessModelSection.cs
- ConnectorMovedEventArgs.cs
- DataGridTable.cs
- ConcurrentDictionary.cs
- AutomationPatternInfo.cs
- BitmapEffectGroup.cs