Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / 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 : grzegorz - 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. //---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // // File: ListParagraph.cs // // Description: ListParagraph represents collection of list items. // // History: // 06/06/2003 : grzegorz - 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
- StylusCollection.cs
- ResourceDescriptionAttribute.cs
- XsdCachingReader.cs
- CriticalFinalizerObject.cs
- GlyphTypeface.cs
- ImageSourceValueSerializer.cs
- DataGridViewRowConverter.cs
- Typeface.cs
- ActivationArguments.cs
- TimeEnumHelper.cs
- ConnectionStringsSection.cs
- TextModifier.cs
- CodeFieldReferenceExpression.cs
- Adorner.cs
- DataPager.cs
- WCFServiceClientProxyGenerator.cs
- PageAsyncTask.cs
- RuleSettings.cs
- ObjectPersistData.cs
- TdsParserStateObject.cs
- IgnoreSectionHandler.cs
- EntityCommandExecutionException.cs
- AdobeCFFWrapper.cs
- UserPersonalizationStateInfo.cs
- TypeListConverter.cs
- ContainerCodeDomSerializer.cs
- ZipIOModeEnforcingStream.cs
- AuthenticationService.cs
- DescendantQuery.cs
- Empty.cs
- StatusBarDrawItemEvent.cs
- WindowsFormsHostAutomationPeer.cs
- LinkedResource.cs
- WCFServiceClientProxyGenerator.cs
- UdpDiscoveryEndpointProvider.cs
- GenerateTemporaryTargetAssembly.cs
- PeerEndPoint.cs
- SystemIPInterfaceStatistics.cs
- FileDetails.cs
- HttpRequestCacheValidator.cs
- MenuRendererStandards.cs
- StoryFragments.cs
- ToolStripItemImageRenderEventArgs.cs
- CultureSpecificStringDictionary.cs
- ModelVisual3D.cs
- DataTableMapping.cs
- BamlVersionHeader.cs
- XmlUnspecifiedAttribute.cs
- GeneralTransformGroup.cs
- BufferBuilder.cs
- ListenDesigner.cs
- WebDisplayNameAttribute.cs
- StandardMenuStripVerb.cs
- Stack.cs
- RuleDefinitions.cs
- CacheVirtualItemsEvent.cs
- ContentPlaceHolder.cs
- AlternateViewCollection.cs
- DictionaryEntry.cs
- HostExecutionContextManager.cs
- peernodestatemanager.cs
- MediaPlayer.cs
- BackgroundFormatInfo.cs
- Evaluator.cs
- TextTreePropertyUndoUnit.cs
- HttpStaticObjectsCollectionWrapper.cs
- HtmlHead.cs
- MulticastDelegate.cs
- IntSecurity.cs
- BindingExpressionBase.cs
- KnowledgeBase.cs
- CheckedPointers.cs
- recordstatefactory.cs
- MULTI_QI.cs
- WebPartConnectionsDisconnectVerb.cs
- TimeZoneNotFoundException.cs
- BuildProvider.cs
- AstTree.cs
- ColumnResizeAdorner.cs
- BamlReader.cs
- DataServiceHostWrapper.cs
- XPathNavigatorKeyComparer.cs
- XomlCompilerError.cs
- SettingsSavedEventArgs.cs
- MasterPage.cs
- DependencyPropertyValueSerializer.cs
- ClientApiGenerator.cs
- StateManagedCollection.cs
- Buffer.cs
- FrameworkElement.cs
- LinqDataSource.cs
- StrongNamePublicKeyBlob.cs
- Pair.cs
- List.cs
- MetadataCache.cs
- SerialPort.cs
- EdmProviderManifest.cs
- DateTimeValueSerializer.cs
- XhtmlBasicTextViewAdapter.cs
- WebPartChrome.cs