Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / Media / textformatting / TextModifierScope.cs / 1 / TextModifierScope.cs
//------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation, 2001 // // File: TextModifierScope.cs // // Contents: Text modification API // // Spec: http://avalon/text/DesignDocsAndSpecs/Text%20Formatting%20API.doc // // Created: 12-5-2004 Niklas Borson (niklasb) // //----------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Windows; using System.Windows.Media; namespace System.Windows.Media.TextFormatting { ////// Represents a single "frame" in the stack of text modifiers. The stack /// is represented not as an array, but as a linked structure in which each /// frame points to its parent. /// internal sealed class TextModifierScope { private TextModifierScope _parentScope; private TextModifier _modifier; private int _cp; ////// Constructs a new text modification state object. /// /// Parent scope, i.e., the previous top of the stack. /// Text modifier run fetched from the client. /// Text source character index of the run. internal TextModifierScope(TextModifierScope parentScope, TextModifier modifier, int cp) { _parentScope = parentScope; _modifier = modifier; _cp = cp; } ////// Next item in the stack of text modifiers. /// public TextModifierScope ParentScope { get { return _parentScope; } } ////// Text modifier run fetched from the client. /// public TextModifier TextModifier { get { return _modifier; } } ////// Character index of the text modifier run. /// public int TextSourceCharacterIndex { get { return _cp; } } ////// Modifies the specified text run properties by invoking the modifier at /// the current scope and all containing scopes. /// /// Properties to modify. ///Returns the text run properties after modification. internal TextRunProperties ModifyProperties(TextRunProperties properties) { for (TextModifierScope scope = this; scope != null; scope = scope._parentScope) { properties = scope._modifier.ModifyProperties(properties); } return properties; } ////// Performs a deep copy of the stack of TextModifierScope objects. /// ///Returns the top of the new stack. internal TextModifierScope CloneStack() { TextModifierScope top = new TextModifierScope(null, _modifier, _cp); TextModifierScope scope = top; for (TextModifierScope source = _parentScope; source != null; source = source._parentScope) { scope._parentScope = new TextModifierScope(null, source._modifier, source._cp); scope = scope._parentScope; } return top; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation, 2001 // // File: TextModifierScope.cs // // Contents: Text modification API // // Spec: http://avalon/text/DesignDocsAndSpecs/Text%20Formatting%20API.doc // // Created: 12-5-2004 Niklas Borson (niklasb) // //----------------------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using System.Windows; using System.Windows.Media; namespace System.Windows.Media.TextFormatting { ////// Represents a single "frame" in the stack of text modifiers. The stack /// is represented not as an array, but as a linked structure in which each /// frame points to its parent. /// internal sealed class TextModifierScope { private TextModifierScope _parentScope; private TextModifier _modifier; private int _cp; ////// Constructs a new text modification state object. /// /// Parent scope, i.e., the previous top of the stack. /// Text modifier run fetched from the client. /// Text source character index of the run. internal TextModifierScope(TextModifierScope parentScope, TextModifier modifier, int cp) { _parentScope = parentScope; _modifier = modifier; _cp = cp; } ////// Next item in the stack of text modifiers. /// public TextModifierScope ParentScope { get { return _parentScope; } } ////// Text modifier run fetched from the client. /// public TextModifier TextModifier { get { return _modifier; } } ////// Character index of the text modifier run. /// public int TextSourceCharacterIndex { get { return _cp; } } ////// Modifies the specified text run properties by invoking the modifier at /// the current scope and all containing scopes. /// /// Properties to modify. ///Returns the text run properties after modification. internal TextRunProperties ModifyProperties(TextRunProperties properties) { for (TextModifierScope scope = this; scope != null; scope = scope._parentScope) { properties = scope._modifier.ModifyProperties(properties); } return properties; } ////// Performs a deep copy of the stack of TextModifierScope objects. /// ///Returns the top of the new stack. internal TextModifierScope CloneStack() { TextModifierScope top = new TextModifierScope(null, _modifier, _cp); TextModifierScope scope = top; for (TextModifierScope source = _parentScope; source != null; source = source._parentScope) { scope._parentScope = new TextModifierScope(null, source._modifier, source._cp); scope = scope._parentScope; } return top; } } } // 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
- DataGridItemCollection.cs
- FixedSOMPageElement.cs
- NGCSerializationManagerAsync.cs
- MenuRendererStandards.cs
- WsatConfiguration.cs
- TextInfo.cs
- EmptyWithCancelationCheckWorkItem.cs
- SizeValueSerializer.cs
- ServicePerformanceCounters.cs
- Table.cs
- _SecureChannel.cs
- Propagator.JoinPropagator.cs
- HttpListenerTimeoutManager.cs
- ClientScriptManagerWrapper.cs
- XmlSchemaExternal.cs
- MatrixTransform3D.cs
- File.cs
- SystemUnicastIPAddressInformation.cs
- Journal.cs
- TextSelectionProcessor.cs
- SQLInt64Storage.cs
- OracleLob.cs
- XPathNavigatorReader.cs
- HttpRawResponse.cs
- TextTreeTextElementNode.cs
- SmtpFailedRecipientsException.cs
- DefaultValueAttribute.cs
- ResourceCategoryAttribute.cs
- Panel.cs
- TreeNode.cs
- DataTemplate.cs
- ProjectionPath.cs
- GetPageNumberCompletedEventArgs.cs
- CollectionEditor.cs
- TextViewElement.cs
- MemberHolder.cs
- SynchronizedChannelCollection.cs
- safemediahandle.cs
- PartialTrustVisibleAssembliesSection.cs
- SubqueryTrackingVisitor.cs
- TypeUtils.cs
- HtmlInputHidden.cs
- ValidationPropertyAttribute.cs
- HostingPreferredMapPath.cs
- DecoderReplacementFallback.cs
- InvariantComparer.cs
- RangeValidator.cs
- ControlType.cs
- ProgressBar.cs
- EffectiveValueEntry.cs
- ParallelTimeline.cs
- Geometry.cs
- TypeConvertions.cs
- ProcessModule.cs
- HighlightVisual.cs
- Style.cs
- SqlBulkCopyColumnMappingCollection.cs
- CmsInterop.cs
- CodeDomComponentSerializationService.cs
- Lazy.cs
- SmtpDateTime.cs
- SubMenuStyle.cs
- OptimalTextSource.cs
- EditBehavior.cs
- TableRowCollection.cs
- Msmq4PoisonHandler.cs
- JsonGlobals.cs
- GroupByExpressionRewriter.cs
- PropertyCollection.cs
- WebPartConnectionsCancelEventArgs.cs
- EntitySetDataBindingList.cs
- ShellProvider.cs
- CompiledELinqQueryState.cs
- MULTI_QI.cs
- WebUtil.cs
- DesignerCategoryAttribute.cs
- EnumBuilder.cs
- DataPointer.cs
- SafeRegistryKey.cs
- DesignerUtils.cs
- ProgressBarBrushConverter.cs
- MimeFormReflector.cs
- SectionXmlInfo.cs
- CustomAttributeBuilder.cs
- TextDecorations.cs
- DeferrableContentConverter.cs
- ActionFrame.cs
- isolationinterop.cs
- ResizeGrip.cs
- DefinitionBase.cs
- XPathExpr.cs
- DbConnectionPoolGroup.cs
- Nodes.cs
- TiffBitmapEncoder.cs
- GacUtil.cs
- ToolboxItemFilterAttribute.cs
- SettingsPropertyCollection.cs
- AutomationIdentifier.cs
- ObjectDataSourceView.cs
- KnownIds.cs