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
- OptimisticConcurrencyException.cs
- MaskDesignerDialog.cs
- ListBoxItemWrapperAutomationPeer.cs
- TextSpan.cs
- ProcessModuleCollection.cs
- CompositeScriptReferenceEventArgs.cs
- SqlDataReader.cs
- Ipv6Element.cs
- EntityCollection.cs
- WindowsFormsHost.cs
- SemanticAnalyzer.cs
- TableColumnCollection.cs
- WebEncodingValidator.cs
- WebRequestModulesSection.cs
- SoapMessage.cs
- RequestResizeEvent.cs
- PenThreadPool.cs
- SystemIPGlobalProperties.cs
- EntityClassGenerator.cs
- OutputCacheModule.cs
- BindingMAnagerBase.cs
- ListView.cs
- COM2EnumConverter.cs
- EncryptedPackage.cs
- SerialErrors.cs
- SystemIPv6InterfaceProperties.cs
- SystemGatewayIPAddressInformation.cs
- SchemaDeclBase.cs
- XmlUrlResolver.cs
- WebPart.cs
- DataGridTextBox.cs
- BackoffTimeoutHelper.cs
- DoubleIndependentAnimationStorage.cs
- StorageRoot.cs
- ThrowOnMultipleAssignment.cs
- HelpEvent.cs
- BuildManagerHost.cs
- ReadOnlyDataSource.cs
- TreeViewImageKeyConverter.cs
- BindingNavigator.cs
- SafeNativeMethods.cs
- PaintEvent.cs
- TraceHandlerErrorFormatter.cs
- MonthCalendar.cs
- LoopExpression.cs
- KeyedPriorityQueue.cs
- BoolExpressionVisitors.cs
- WindowsUpDown.cs
- XpsS0ValidatingLoader.cs
- GridViewSortEventArgs.cs
- TableLayoutSettingsTypeConverter.cs
- CodeMemberEvent.cs
- OdbcStatementHandle.cs
- Point3DCollection.cs
- returneventsaver.cs
- ResourceAssociationSet.cs
- PrinterResolution.cs
- ProxyRpc.cs
- ExecutionContext.cs
- SspiSafeHandles.cs
- GridErrorDlg.cs
- PropertyKey.cs
- CompModSwitches.cs
- ManipulationPivot.cs
- MonthChangedEventArgs.cs
- MultiView.cs
- DataGridTableCollection.cs
- ImmutablePropertyDescriptorGridEntry.cs
- TextEditorSpelling.cs
- CSharpCodeProvider.cs
- PackageProperties.cs
- DataSourceNameHandler.cs
- ControlTemplate.cs
- UpdateRecord.cs
- CacheOutputQuery.cs
- SharedPersonalizationStateInfo.cs
- SessionPageStatePersister.cs
- ListView.cs
- GenerateScriptTypeAttribute.cs
- ToolbarAUtomationPeer.cs
- ADMembershipUser.cs
- DataControlFieldTypeEditor.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- MediaCommands.cs
- RemoteWebConfigurationHostStream.cs
- OverrideMode.cs
- NullableFloatAverageAggregationOperator.cs
- cookiecollection.cs
- DataComponentNameHandler.cs
- BinaryMethodMessage.cs
- latinshape.cs
- CustomMenuItemCollection.cs
- HtmlUtf8RawTextWriter.cs
- ListView.cs
- FontSourceCollection.cs
- ObjectDataSourceView.cs
- TextPointerBase.cs
- XmlSchemaSimpleTypeRestriction.cs
- _CommandStream.cs
- GcHandle.cs