Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- FaultContractInfo.cs
- DbExpressionBuilder.cs
- UrlMappingCollection.cs
- diagnosticsswitches.cs
- SingleConverter.cs
- XmlAttributes.cs
- SafeNativeMethods.cs
- Fonts.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- LambdaCompiler.Expressions.cs
- SortedDictionary.cs
- BookmarkScopeHandle.cs
- ScrollChangedEventArgs.cs
- SafeCryptoHandles.cs
- MexBindingElement.cs
- TdsParserSessionPool.cs
- PageThemeBuildProvider.cs
- XmlSortKey.cs
- ProtocolsConfigurationEntry.cs
- XmlEnumAttribute.cs
- BmpBitmapEncoder.cs
- UniqueIdentifierService.cs
- Path.cs
- UnsafeNetInfoNativeMethods.cs
- TableProviderWrapper.cs
- InstanceOwnerException.cs
- TextServicesManager.cs
- FaultException.cs
- GridViewSortEventArgs.cs
- Line.cs
- ClientTarget.cs
- LazyTextWriterCreator.cs
- DllNotFoundException.cs
- CryptoStream.cs
- MexServiceChannelBuilder.cs
- EmptyStringExpandableObjectConverter.cs
- SupportsPreviewControlAttribute.cs
- CodeGenerator.cs
- ExpressionBuilderCollection.cs
- XPathNodeInfoAtom.cs
- RadioButton.cs
- DefaultSerializationProviderAttribute.cs
- _Win32.cs
- InputProcessorProfiles.cs
- TraceData.cs
- DynamicMethod.cs
- DelimitedListTraceListener.cs
- SafeSystemMetrics.cs
- BindingExpressionUncommonField.cs
- WindowsIdentity.cs
- UIHelper.cs
- DataGridViewTopRowAccessibleObject.cs
- Wizard.cs
- ProxySimple.cs
- ModuleBuilderData.cs
- TextTreeTextBlock.cs
- CookieProtection.cs
- KnownBoxes.cs
- FormatControl.cs
- ProjectionCamera.cs
- Directory.cs
- GeneratedCodeAttribute.cs
- ProcessStartInfo.cs
- CatalogPart.cs
- WebPartTransformerAttribute.cs
- CrossAppDomainChannel.cs
- QueryCacheManager.cs
- PropertyGridEditorPart.cs
- ClusterRegistryConfigurationProvider.cs
- SecurityValidationBehavior.cs
- TTSVoice.cs
- TreeNode.cs
- FlowNode.cs
- AdministrationHelpers.cs
- FunctionDetailsReader.cs
- DataTableReader.cs
- TableLayoutPanel.cs
- ResourceDescriptionAttribute.cs
- DataGridViewCellStyleBuilderDialog.cs
- UInt16.cs
- NavigationProperty.cs
- IndexedEnumerable.cs
- CredentialCache.cs
- Scripts.cs
- BindingValueChangedEventArgs.cs
- WebConfigurationHostFileChange.cs
- SplitterEvent.cs
- XamlToRtfWriter.cs
- TextPattern.cs
- UpdateCommand.cs
- TextParagraphProperties.cs
- MdiWindowListStrip.cs
- AppDomainManager.cs
- SchemaElement.cs
- TypedTableBase.cs
- PathData.cs
- ResourceExpressionBuilder.cs
- OdbcConnectionPoolProviderInfo.cs
- XmlSchemaComplexContent.cs
- TypeLoadException.cs