Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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 : [....] - 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
- MessageFormatterConverter.cs
- RootContext.cs
- SuppressMergeCheckAttribute.cs
- RenderCapability.cs
- ExtenderControl.cs
- UnsafeNativeMethods.cs
- RecipientInfo.cs
- AddInToken.cs
- XmlHierarchicalEnumerable.cs
- MemberDomainMap.cs
- AutomationElementCollection.cs
- NullableConverter.cs
- ParentUndoUnit.cs
- RegistrationServices.cs
- Margins.cs
- ToolStripSplitStackLayout.cs
- SQLDecimalStorage.cs
- FileSystemEventArgs.cs
- TextTreeTextBlock.cs
- BCryptSafeHandles.cs
- ColorTransform.cs
- ServiceParser.cs
- AxisAngleRotation3D.cs
- SocketSettings.cs
- DeadLetterQueue.cs
- PerformanceCounter.cs
- DictionaryMarkupSerializer.cs
- ListSurrogate.cs
- EdmSchemaError.cs
- SiteMapNodeItemEventArgs.cs
- wgx_exports.cs
- WebPartAddingEventArgs.cs
- NativeMethods.cs
- Journal.cs
- DataAdapter.cs
- WebServiceData.cs
- XhtmlBasicPhoneCallAdapter.cs
- ContainerActivationHelper.cs
- SendingRequestEventArgs.cs
- TempFiles.cs
- TextTreePropertyUndoUnit.cs
- Parser.cs
- RequiredFieldValidator.cs
- __FastResourceComparer.cs
- recordstate.cs
- RIPEMD160.cs
- IconConverter.cs
- SocketInformation.cs
- GroupPartitionExpr.cs
- FileLogRecord.cs
- ToolboxDataAttribute.cs
- returneventsaver.cs
- ClientSettingsSection.cs
- DrawToolTipEventArgs.cs
- TrackBarRenderer.cs
- CodeAttachEventStatement.cs
- FormViewPagerRow.cs
- TextEncodedRawTextWriter.cs
- WebPartVerbCollection.cs
- PropertySegmentSerializer.cs
- ProfilePropertySettingsCollection.cs
- XmlSignatureProperties.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- ArraySortHelper.cs
- InfiniteTimeSpanConverter.cs
- EdmProviderManifest.cs
- StylusPointPropertyUnit.cs
- DirectoryRootQuery.cs
- SubqueryRules.cs
- PrivacyNoticeBindingElement.cs
- WebServiceHost.cs
- DataComponentNameHandler.cs
- PrincipalPermission.cs
- GlyphRun.cs
- ForeignKeyConstraint.cs
- ReferencedAssembly.cs
- RenamedEventArgs.cs
- ListViewInsertEventArgs.cs
- NativeCppClassAttribute.cs
- GatewayDefinition.cs
- TextSegment.cs
- Main.cs
- ImageEditor.cs
- Boolean.cs
- MediaSystem.cs
- ClientBase.cs
- ConfigXmlComment.cs
- DoubleAverageAggregationOperator.cs
- GraphicsContext.cs
- Evaluator.cs
- SqlAliasesReferenced.cs
- MultiTrigger.cs
- OleDbConnection.cs
- WorkflowPageSetupDialog.cs
- HttpContextBase.cs
- LabelDesigner.cs
- SaveFileDialog.cs
- DropShadowBitmapEffect.cs
- XmlAnyElementAttribute.cs
- StructuredTypeEmitter.cs