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
- SBCSCodePageEncoding.cs
- StructuredTypeInfo.cs
- EndpointAddress.cs
- PropertyGeneratedEventArgs.cs
- DataColumnPropertyDescriptor.cs
- MobileControlsSectionHelper.cs
- ExpressionParser.cs
- SchemaImporter.cs
- GridViewColumnCollection.cs
- AlphabeticalEnumConverter.cs
- EventMappingSettingsCollection.cs
- Int32Animation.cs
- HGlobalSafeHandle.cs
- LoginView.cs
- IssuedTokenParametersElement.cs
- ImpersonateTokenRef.cs
- SHA1CryptoServiceProvider.cs
- CheckBoxField.cs
- SessionSwitchEventArgs.cs
- Point3DAnimation.cs
- LocatorManager.cs
- WindowsScrollBar.cs
- LoginName.cs
- DescriptionAttribute.cs
- PropertyMapper.cs
- SqlNodeTypeOperators.cs
- NavigatorInvalidBodyAccessException.cs
- InheritanceContextChangedEventManager.cs
- LateBoundBitmapDecoder.cs
- ObjectFullSpanRewriter.cs
- Byte.cs
- WebPartCatalogCloseVerb.cs
- GifBitmapDecoder.cs
- MatrixAnimationUsingKeyFrames.cs
- CustomAttributeSerializer.cs
- PersonalizationStateInfo.cs
- JapaneseLunisolarCalendar.cs
- UriSection.cs
- FeedUtils.cs
- securitymgrsite.cs
- LinkedResource.cs
- SqlMultiplexer.cs
- FlowSwitchLink.cs
- HtmlInputRadioButton.cs
- VirtualDirectoryMapping.cs
- RulePatternOps.cs
- ConfigPathUtility.cs
- MsmqReceiveHelper.cs
- WizardStepBase.cs
- RuleSettings.cs
- Pen.cs
- Control.cs
- TransactionInformation.cs
- FrameSecurityDescriptor.cs
- XmlSchemaAttribute.cs
- EndpointInstanceProvider.cs
- HttpPostServerProtocol.cs
- ScriptHandlerFactory.cs
- XmlLangPropertyAttribute.cs
- FrameworkContentElementAutomationPeer.cs
- OdbcPermission.cs
- Attributes.cs
- SettingsPropertyValueCollection.cs
- SqlBooleanMismatchVisitor.cs
- MarkupWriter.cs
- SeverityFilter.cs
- InkPresenterAutomationPeer.cs
- XamlSerializationHelper.cs
- safex509handles.cs
- RIPEMD160Managed.cs
- ModifiableIteratorCollection.cs
- CancellationHandler.cs
- PageAsyncTask.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- ProtocolsSection.cs
- XPathMessageFilterTable.cs
- InputProcessorProfiles.cs
- TableParaClient.cs
- HttpCachePolicyElement.cs
- CollectionViewProxy.cs
- SystemBrushes.cs
- XmlReaderDelegator.cs
- FieldNameLookup.cs
- BinaryParser.cs
- DPAPIProtectedConfigurationProvider.cs
- ToolStripItemRenderEventArgs.cs
- Column.cs
- PointLightBase.cs
- HashStream.cs
- EntityDataSourceUtil.cs
- ListViewSelectEventArgs.cs
- DocumentPageTextView.cs
- Image.cs
- ModulesEntry.cs
- RoutingBehavior.cs
- WmpBitmapDecoder.cs
- SqlRowUpdatedEvent.cs
- CodeDefaultValueExpression.cs
- ContainerVisual.cs
- OdbcDataReader.cs