Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- HttpConfigurationContext.cs
- assemblycache.cs
- SQLSingleStorage.cs
- KeyValuePairs.cs
- WebException.cs
- ListViewGroup.cs
- NetSectionGroup.cs
- WsatConfiguration.cs
- ReadOnlyNameValueCollection.cs
- PackageController.cs
- Attributes.cs
- ReadOnlyDictionary.cs
- DataServiceRequestArgs.cs
- TableLayoutPanelCellPosition.cs
- XmlHierarchyData.cs
- METAHEADER.cs
- EntityConnectionStringBuilder.cs
- XmlSchemaObject.cs
- safemediahandle.cs
- X509CertificateCollection.cs
- TextSelectionProcessor.cs
- RowBinding.cs
- RemoteWebConfigurationHostServer.cs
- AppDomainAttributes.cs
- SchemaNames.cs
- XPathExpr.cs
- BitmapEffectrendercontext.cs
- NegatedConstant.cs
- BuildManager.cs
- HtmlUtf8RawTextWriter.cs
- CompositeControl.cs
- DeclarationUpdate.cs
- ToolStripDropDownItem.cs
- LongValidator.cs
- SecurityState.cs
- XmlIncludeAttribute.cs
- UTF8Encoding.cs
- AdornerLayer.cs
- Knowncolors.cs
- MenuEventArgs.cs
- RC2.cs
- StyleSheet.cs
- ActivitiesCollection.cs
- WebControlsSection.cs
- ActivationArguments.cs
- ByteAnimation.cs
- Adorner.cs
- BooleanAnimationUsingKeyFrames.cs
- DbConnectionHelper.cs
- GetPageCompletedEventArgs.cs
- Int32Converter.cs
- WindowsStatusBar.cs
- OrderedDictionaryStateHelper.cs
- FunctionDescription.cs
- Clock.cs
- PrimitiveType.cs
- AttributeConverter.cs
- Int64AnimationBase.cs
- JournalEntry.cs
- XmlSerializer.cs
- DataObject.cs
- TypeLibraryHelper.cs
- LabelAutomationPeer.cs
- AlphabeticalEnumConverter.cs
- securitymgrsite.cs
- SpellerError.cs
- ProtocolsConfigurationHandler.cs
- DateTimeConverter.cs
- WebCategoryAttribute.cs
- WindowsMenu.cs
- TableLayoutColumnStyleCollection.cs
- EtwTrace.cs
- RectangleConverter.cs
- WebPartZoneCollection.cs
- ProcessHostConfigUtils.cs
- BulletChrome.cs
- RoutedEventArgs.cs
- Utils.cs
- ColumnResizeUndoUnit.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- ListItemParagraph.cs
- AutoCompleteStringCollection.cs
- WindowsListViewGroupHelper.cs
- Span.cs
- ThicknessAnimationBase.cs
- TextSegment.cs
- OracleRowUpdatedEventArgs.cs
- Logging.cs
- ErrorFormatterPage.cs
- CollectionsUtil.cs
- SamlEvidence.cs
- GraphicsState.cs
- SpecularMaterial.cs
- WorkflowRuntimeSection.cs
- ContractTypeNameElement.cs
- DataBinding.cs
- ListItemCollection.cs
- RegistryKey.cs
- BamlLocalizationDictionary.cs
- Group.cs