Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- XmlExtensionFunction.cs
- CodeComment.cs
- SerializationSectionGroup.cs
- AnnotationObservableCollection.cs
- PerformanceCounterNameAttribute.cs
- _AcceptOverlappedAsyncResult.cs
- TextRenderer.cs
- DefaultPropertyAttribute.cs
- CodeExporter.cs
- DocumentPageViewAutomationPeer.cs
- PerspectiveCamera.cs
- ObjectDataSourceSelectingEventArgs.cs
- ListBoxItemAutomationPeer.cs
- LabelExpression.cs
- ThousandthOfEmRealPoints.cs
- ProofTokenCryptoHandle.cs
- TabControl.cs
- TextStore.cs
- InteropTrackingRecord.cs
- ActiveDocumentEvent.cs
- EventLogPermissionEntryCollection.cs
- FirstMatchCodeGroup.cs
- CharUnicodeInfo.cs
- PersonalizationState.cs
- ClientScriptManagerWrapper.cs
- WindowsUpDown.cs
- FlowDocumentScrollViewer.cs
- RelationshipDetailsCollection.cs
- SelectedGridItemChangedEvent.cs
- AutoResetEvent.cs
- HelpProvider.cs
- xmlsaver.cs
- SqlProfileProvider.cs
- RIPEMD160Managed.cs
- ConsumerConnectionPointCollection.cs
- ErrorHandler.cs
- ErrorHandlerModule.cs
- PtsPage.cs
- securestring.cs
- ApplicationServicesHostFactory.cs
- DelegatingConfigHost.cs
- PostBackTrigger.cs
- TreeViewDesigner.cs
- ZipIOLocalFileBlock.cs
- DictionaryCustomTypeDescriptor.cs
- KnownTypeHelper.cs
- FieldToken.cs
- Model3DCollection.cs
- BoundConstants.cs
- BamlRecords.cs
- EventArgs.cs
- HttpApplicationFactory.cs
- FontFamilyIdentifier.cs
- DataBindingHandlerAttribute.cs
- IImplicitResourceProvider.cs
- Line.cs
- MasterPage.cs
- PermissionSetEnumerator.cs
- SspiHelper.cs
- Int32KeyFrameCollection.cs
- TextTreeRootTextBlock.cs
- MemoryStream.cs
- BindingNavigator.cs
- SchemaAttDef.cs
- ObjectDataSourceEventArgs.cs
- messageonlyhwndwrapper.cs
- DataGridTable.cs
- DesignerHierarchicalDataSourceView.cs
- ToolStripPanelRenderEventArgs.cs
- DataMemberAttribute.cs
- MarshalByRefObject.cs
- HttpResponseInternalWrapper.cs
- _Events.cs
- SHA512Managed.cs
- SHA256Managed.cs
- CookielessHelper.cs
- WindowProviderWrapper.cs
- ConstraintConverter.cs
- listitem.cs
- FileCodeGroup.cs
- AppDomainFactory.cs
- TextAdaptor.cs
- X509DefaultServiceCertificateElement.cs
- Regex.cs
- WindowsScroll.cs
- FixedBufferAttribute.cs
- MediaElement.cs
- EpmSyndicationContentDeSerializer.cs
- SqlConnectionString.cs
- InputElement.cs
- FamilyCollection.cs
- Int64Converter.cs
- MetabaseServerConfig.cs
- GeometryCombineModeValidation.cs
- SelectionPatternIdentifiers.cs
- HandlerFactoryCache.cs
- TableColumn.cs
- CodeIdentifier.cs
- URI.cs
- Binding.cs