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
- FastEncoderStatics.cs
- OracleTimeSpan.cs
- VersionedStream.cs
- HttpContextWrapper.cs
- ObjectHandle.cs
- OSFeature.cs
- EntityDataSourceContextCreatingEventArgs.cs
- IProducerConsumerCollection.cs
- TextContainerChangeEventArgs.cs
- TransactionScope.cs
- Part.cs
- SafeSerializationManager.cs
- InitializationEventAttribute.cs
- DefaultValueConverter.cs
- XmlDocumentType.cs
- XmlSchemaCollection.cs
- ContentPosition.cs
- EntityDataSourceStatementEditorForm.cs
- AccessDataSourceView.cs
- CodeAttributeDeclarationCollection.cs
- XmlILModule.cs
- DiffuseMaterial.cs
- WebPartMenuStyle.cs
- ConfigUtil.cs
- ProfileGroupSettingsCollection.cs
- WindowsFormsSynchronizationContext.cs
- ClientSettingsProvider.cs
- PropertyTab.cs
- ExcCanonicalXml.cs
- DataGridRowEventArgs.cs
- DictionaryEntry.cs
- ClientConfigurationHost.cs
- DataControlFieldsEditor.cs
- unsafenativemethodstextservices.cs
- SmtpCommands.cs
- RubberbandSelector.cs
- SspiNegotiationTokenAuthenticator.cs
- ObjectParameterCollection.cs
- BitHelper.cs
- WebPartsPersonalizationAuthorization.cs
- RayHitTestParameters.cs
- SelectionEditor.cs
- AddingNewEventArgs.cs
- XmlHierarchyData.cs
- BigInt.cs
- VisemeEventArgs.cs
- XslTransform.cs
- RegexBoyerMoore.cs
- OdbcStatementHandle.cs
- SqlBooleanMismatchVisitor.cs
- AliasGenerator.cs
- ControlUtil.cs
- SyndicationSerializer.cs
- PointLight.cs
- HebrewCalendar.cs
- RijndaelManagedTransform.cs
- DetailsViewInsertEventArgs.cs
- MasterPageParser.cs
- Repeater.cs
- WebRequestModuleElementCollection.cs
- CasesDictionary.cs
- Exception.cs
- DocumentGridContextMenu.cs
- TextDecoration.cs
- dataprotectionpermission.cs
- HttpWrapper.cs
- BuildDependencySet.cs
- ZipPackagePart.cs
- NextPreviousPagerField.cs
- JournalEntryListConverter.cs
- DesignerDataColumn.cs
- tibetanshape.cs
- StdRegProviderWrapper.cs
- MethodAccessException.cs
- XPathNodePointer.cs
- TimeoutException.cs
- HostDesigntimeLicenseContext.cs
- SyndicationItem.cs
- MessagePropertyVariants.cs
- Annotation.cs
- FilteredDataSetHelper.cs
- DataGridViewLinkColumn.cs
- MsmqInputChannelListener.cs
- IProvider.cs
- EmptyControlCollection.cs
- ExpressionConverter.cs
- SelectionChangedEventArgs.cs
- DictionaryEntry.cs
- CodePageUtils.cs
- PerformanceCountersBase.cs
- SqlFunctionAttribute.cs
- TextTreeText.cs
- OpacityConverter.cs
- Errors.cs
- SByte.cs
- ChangeTracker.cs
- AnnotationHelper.cs
- MarginsConverter.cs
- SrgsDocument.cs
- StrokeNodeOperations2.cs