Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- GridViewAutomationPeer.cs
- IUnknownConstantAttribute.cs
- FontFamilyIdentifier.cs
- DictionaryItemsCollection.cs
- DynamicMethod.cs
- SafeRightsManagementQueryHandle.cs
- CommandLibraryHelper.cs
- contentDescriptor.cs
- Imaging.cs
- storepermission.cs
- SoapHeaders.cs
- DataProtectionSecurityStateEncoder.cs
- SourceChangedEventArgs.cs
- WebPartEditorCancelVerb.cs
- SkipQueryOptionExpression.cs
- EdmProperty.cs
- InProcStateClientManager.cs
- CompilerParameters.cs
- ComponentDesigner.cs
- AsyncDataRequest.cs
- LinearGradientBrush.cs
- Vector3DIndependentAnimationStorage.cs
- UrlAuthorizationModule.cs
- BitmapPalette.cs
- SQLGuidStorage.cs
- WebConfigurationHost.cs
- KeyToListMap.cs
- LifetimeServices.cs
- hresults.cs
- RecognizedWordUnit.cs
- LinqDataSourceDisposeEventArgs.cs
- SyndicationLink.cs
- FontConverter.cs
- DockProviderWrapper.cs
- MobileTextWriter.cs
- NavigationPropertyEmitter.cs
- TextProviderWrapper.cs
- VisualBrush.cs
- MgmtResManager.cs
- XmlCharacterData.cs
- ClickablePoint.cs
- TemplatePropertyEntry.cs
- ClientBuildManagerCallback.cs
- ScriptServiceAttribute.cs
- IndentedTextWriter.cs
- DesignBindingConverter.cs
- AnimatedTypeHelpers.cs
- NotSupportedException.cs
- XmlChildNodes.cs
- Convert.cs
- UIElement3D.cs
- AstNode.cs
- CodeCastExpression.cs
- DesignerDataConnection.cs
- Model3D.cs
- ComplexBindingPropertiesAttribute.cs
- RefreshPropertiesAttribute.cs
- FormDesigner.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- SafeCryptoHandles.cs
- DbMetaDataFactory.cs
- _IPv6Address.cs
- Color.cs
- OdbcCommandBuilder.cs
- Point3DCollectionValueSerializer.cs
- MimeFormImporter.cs
- NullableDecimalAverageAggregationOperator.cs
- TerminateSequenceResponse.cs
- Rect.cs
- DesignerActionTextItem.cs
- ZipIOCentralDirectoryBlock.cs
- BackStopAuthenticationModule.cs
- CqlParserHelpers.cs
- SystemDropShadowChrome.cs
- IndividualDeviceConfig.cs
- StringFreezingAttribute.cs
- PageRanges.cs
- RowCache.cs
- MarshalByValueComponent.cs
- RegexMatch.cs
- FlowDocumentPageViewerAutomationPeer.cs
- IApplicationTrustManager.cs
- MultipartIdentifier.cs
- ipaddressinformationcollection.cs
- HandleRef.cs
- CTreeGenerator.cs
- TreeViewEvent.cs
- XamlSerializationHelper.cs
- ForceCopyBuildProvider.cs
- FlowDecisionDesigner.xaml.cs
- SspiNegotiationTokenProviderState.cs
- Visitor.cs
- IncrementalHitTester.cs
- EntityDataSourceDataSelection.cs
- TaskHelper.cs
- Publisher.cs
- Section.cs
- TimerTable.cs
- DesignSurfaceCollection.cs
- TreeViewCancelEvent.cs