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
- ToolBar.cs
- InternalControlCollection.cs
- BindingObserver.cs
- HttpServerVarsCollection.cs
- XmlEntity.cs
- XmlDocumentType.cs
- ProfileParameter.cs
- CategoriesDocument.cs
- Zone.cs
- ExpressionVisitor.cs
- WizardStepCollectionEditor.cs
- BindingsSection.cs
- UrlMappingCollection.cs
- XPathPatternBuilder.cs
- ErrorsHelper.cs
- OptimizedTemplateContent.cs
- FilePrompt.cs
- Metafile.cs
- BinaryNode.cs
- ADMembershipProvider.cs
- IconConverter.cs
- DataGridTextBoxColumn.cs
- OptimisticConcurrencyException.cs
- TransformerConfigurationWizardBase.cs
- XmlDataSourceView.cs
- ColumnResult.cs
- tooltip.cs
- TextSpan.cs
- RegexRunnerFactory.cs
- WebBrowser.cs
- PathGeometry.cs
- UnauthorizedWebPart.cs
- ByeMessageCD1.cs
- VBCodeProvider.cs
- _DomainName.cs
- WebExceptionStatus.cs
- CollectionView.cs
- MustUnderstandSoapException.cs
- AmbientLight.cs
- DataControlFieldCollection.cs
- DirectoryNotFoundException.cs
- HtmlHead.cs
- DeferredSelectedIndexReference.cs
- PipeConnection.cs
- cookieexception.cs
- SqlUdtInfo.cs
- DeploymentSectionCache.cs
- ObjectManager.cs
- HtmlInputButton.cs
- WebControlAdapter.cs
- Constraint.cs
- TraceContextEventArgs.cs
- DataGridLinkButton.cs
- QueryStatement.cs
- RelationshipEnd.cs
- SymbolTable.cs
- InternalRelationshipCollection.cs
- EdmProperty.cs
- SqlTypeConverter.cs
- ToolBarButton.cs
- ChangeInterceptorAttribute.cs
- ExpressionBindingCollection.cs
- IndexerReference.cs
- NameSpaceExtractor.cs
- XmlSchemaInfo.cs
- _Connection.cs
- TableLayoutPanel.cs
- EntitySqlQueryCacheEntry.cs
- LayoutTable.cs
- EpmContentSerializerBase.cs
- InfoCardProofToken.cs
- XmlValidatingReaderImpl.cs
- PropertyContainer.cs
- SoapWriter.cs
- VectorCollection.cs
- RuleCache.cs
- OutputScope.cs
- SmiEventSink.cs
- Queue.cs
- BrushProxy.cs
- PropertyGeneratedEventArgs.cs
- SineEase.cs
- HelloMessage11.cs
- ResourcesChangeInfo.cs
- LayoutInformation.cs
- WebPartConnectionsEventArgs.cs
- MouseButtonEventArgs.cs
- ExecutionContext.cs
- Matrix.cs
- XmlNodeReader.cs
- FilteredSchemaElementLookUpTable.cs
- EntityContainerEntitySetDefiningQuery.cs
- MULTI_QI.cs
- ToolStripOverflow.cs
- MultilineStringConverter.cs
- BitmapEffectInputData.cs
- MenuItemStyleCollectionEditor.cs
- ConsumerConnectionPoint.cs
- ResourceAssociationSetEnd.cs
- columnmapkeybuilder.cs