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
- ErrorHandler.cs
- SecurityState.cs
- SqlDataSourceStatusEventArgs.cs
- SwitchCase.cs
- ParenthesizePropertyNameAttribute.cs
- Collection.cs
- StrokeNodeEnumerator.cs
- CompositionAdorner.cs
- Parsers.cs
- PrimarySelectionAdorner.cs
- MarkupExtensionReturnTypeAttribute.cs
- DocumentApplication.cs
- XmlSignificantWhitespace.cs
- QilParameter.cs
- CompressStream.cs
- RouteValueDictionary.cs
- VectorAnimation.cs
- LinkButton.cs
- TextHidden.cs
- InkCanvasInnerCanvas.cs
- PartialList.cs
- Conditional.cs
- FilterQuery.cs
- XamlPathDataSerializer.cs
- FastPropertyAccessor.cs
- XmlDictionary.cs
- TreeViewBindingsEditor.cs
- CodeDelegateCreateExpression.cs
- PolygonHotSpot.cs
- DocumentCollection.cs
- AmbiguousMatchException.cs
- JsonByteArrayDataContract.cs
- GeneralTransform3DGroup.cs
- CallInfo.cs
- DataGridHeaderBorder.cs
- Brush.cs
- RIPEMD160Managed.cs
- BindingExpressionBase.cs
- HtmlFormParameterReader.cs
- ProcessModelInfo.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- StreamWithDictionary.cs
- StopRoutingHandler.cs
- ComboBoxItem.cs
- EventRoute.cs
- HandlerMappingMemo.cs
- ScrollPatternIdentifiers.cs
- DbException.cs
- SystemFonts.cs
- Message.cs
- RegistryExceptionHelper.cs
- IgnorePropertiesAttribute.cs
- RangeValuePatternIdentifiers.cs
- AddInServer.cs
- SmiMetaDataProperty.cs
- FullTextState.cs
- DataBoundControlHelper.cs
- ConfigPathUtility.cs
- PropertyDescriptorGridEntry.cs
- DrawingGroup.cs
- SqlParameter.cs
- XmlDataSourceNodeDescriptor.cs
- DataObjectPastingEventArgs.cs
- StreamUpdate.cs
- CustomErrorCollection.cs
- PopupRootAutomationPeer.cs
- SoapParser.cs
- KeyedCollection.cs
- EventToken.cs
- DirectoryRootQuery.cs
- Evaluator.cs
- Stroke.cs
- CompositeDataBoundControl.cs
- MasterPage.cs
- ColorTranslator.cs
- TemplateComponentConnector.cs
- Logging.cs
- Soap.cs
- RSAPKCS1KeyExchangeFormatter.cs
- DiscoveryServiceExtension.cs
- SqlNotificationRequest.cs
- DataControlPagerLinkButton.cs
- WebHttpElement.cs
- HandlerWithFactory.cs
- IISMapPath.cs
- XhtmlCssHandler.cs
- DeploymentExceptionMapper.cs
- PanelDesigner.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- baseaxisquery.cs
- PointLight.cs
- Filter.cs
- DuplicateWaitObjectException.cs
- ContractTypeNameElement.cs
- IndependentlyAnimatedPropertyMetadata.cs
- Serializer.cs
- RotateTransform.cs
- WebPartVerbCollection.cs
- EntityCommandDefinition.cs
- SoapAttributeOverrides.cs