Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / textformatting / TextModifierScope.cs / 1305600 / 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
- XhtmlBasicTextBoxAdapter.cs
- Journaling.cs
- DataGridViewCellValidatingEventArgs.cs
- NativeMethodsOther.cs
- SafeHandles.cs
- VideoDrawing.cs
- DataGridViewCellParsingEventArgs.cs
- DrawingGroup.cs
- FlowDocument.cs
- SqlProviderManifest.cs
- SoapDocumentServiceAttribute.cs
- SamlAuthenticationStatement.cs
- Visual3DCollection.cs
- RelationalExpressions.cs
- EventSourceCreationData.cs
- HandlerBase.cs
- RoutedEventValueSerializer.cs
- SqlTrackingService.cs
- RIPEMD160.cs
- NonDualMessageSecurityOverHttp.cs
- ToolboxItemCollection.cs
- ClientTarget.cs
- CopyNamespacesAction.cs
- ItemCollectionEditor.cs
- ITextView.cs
- HMACSHA1.cs
- ProcessManager.cs
- TextViewBase.cs
- CompoundFileIOPermission.cs
- EndpointPerformanceCounters.cs
- AsynchronousChannelMergeEnumerator.cs
- ProfilePropertySettings.cs
- Button.cs
- InnerItemCollectionView.cs
- TiffBitmapDecoder.cs
- ContainerControl.cs
- ExpressionBuilder.cs
- ConstructorNeedsTagAttribute.cs
- SmiConnection.cs
- Accessors.cs
- AsyncOperationContext.cs
- OpCellTreeNode.cs
- XmlDomTextWriter.cs
- Rotation3DAnimation.cs
- UrlAuthorizationModule.cs
- parserscommon.cs
- Assembly.cs
- KnownBoxes.cs
- XXXOnTypeBuilderInstantiation.cs
- SafeCoTaskMem.cs
- SQlBooleanStorage.cs
- ISCIIEncoding.cs
- CqlWriter.cs
- DataTablePropertyDescriptor.cs
- ASCIIEncoding.cs
- SettingsAttributes.cs
- XsdDataContractExporter.cs
- Journal.cs
- TemplatedAdorner.cs
- RegisteredDisposeScript.cs
- LinearKeyFrames.cs
- ProcessModuleCollection.cs
- StreamUpdate.cs
- TextDecoration.cs
- GPPOINTF.cs
- XmlDeclaration.cs
- Rfc2898DeriveBytes.cs
- DictionaryContent.cs
- Viewport2DVisual3D.cs
- ControlParameter.cs
- DbDataSourceEnumerator.cs
- Event.cs
- MatrixAnimationUsingKeyFrames.cs
- ColumnWidthChangedEvent.cs
- CreateUserErrorEventArgs.cs
- AssemblyUtil.cs
- IDictionary.cs
- ChangePasswordDesigner.cs
- DiscoveryReferences.cs
- SingletonConnectionReader.cs
- BamlLocalizableResourceKey.cs
- SqlAggregateChecker.cs
- XmlSchemaGroup.cs
- PrintControllerWithStatusDialog.cs
- ExecutionEngineException.cs
- RemotingConfigParser.cs
- PathNode.cs
- SynchronousSendBindingElement.cs
- CustomAttributeFormatException.cs
- StylusOverProperty.cs
- LambdaCompiler.Expressions.cs
- SurrogateEncoder.cs
- Literal.cs
- MethodRental.cs
- ValidationSummary.cs
- TdsRecordBufferSetter.cs
- SeekStoryboard.cs
- objectresult_tresulttype.cs
- InputEventArgs.cs
- WebAdminConfigurationHelper.cs