Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / textformatting / TextModifierScope.cs / 1305600 / 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
- XmlnsPrefixAttribute.cs
- StringToken.cs
- UIPermission.cs
- SizeIndependentAnimationStorage.cs
- ProviderConnectionPointCollection.cs
- XmlAutoDetectWriter.cs
- ListItemCollection.cs
- Drawing.cs
- XsdBuildProvider.cs
- SemanticValue.cs
- TwoPhaseCommitProxy.cs
- NullEntityWrapper.cs
- XamlReaderHelper.cs
- CustomSignedXml.cs
- GetRecipientRequest.cs
- SafeEventLogReadHandle.cs
- Clock.cs
- ConnectionStringSettings.cs
- SqlErrorCollection.cs
- ObjectTokenCategory.cs
- SessionState.cs
- FtpCachePolicyElement.cs
- EventData.cs
- SchemaEntity.cs
- FixedSchema.cs
- Substitution.cs
- SqlComparer.cs
- BuildProvider.cs
- DrawingContextDrawingContextWalker.cs
- InlineUIContainer.cs
- LambdaValue.cs
- SqlBulkCopyColumnMappingCollection.cs
- TextElementCollectionHelper.cs
- StreamWithDictionary.cs
- CodeMemberProperty.cs
- PropertyAccessVisitor.cs
- TextEditorParagraphs.cs
- NavigationEventArgs.cs
- formatstringdialog.cs
- ImageSource.cs
- TypeFieldSchema.cs
- PanelContainerDesigner.cs
- ImageFormat.cs
- EventSetter.cs
- MatrixAnimationBase.cs
- X509IssuerSerialKeyIdentifierClause.cs
- OverflowException.cs
- DesignTableCollection.cs
- UserNameSecurityTokenProvider.cs
- PageContentAsyncResult.cs
- HttpServerVarsCollection.cs
- Serializer.cs
- CuspData.cs
- SQLInt16.cs
- WebPartTracker.cs
- TimelineGroup.cs
- Exceptions.cs
- SigningDialog.cs
- ImageSourceTypeConverter.cs
- Popup.cs
- Inflater.cs
- KnownTypesProvider.cs
- HttpValueCollection.cs
- __ConsoleStream.cs
- SelectionChangedEventArgs.cs
- WebServiceClientProxyGenerator.cs
- LinearQuaternionKeyFrame.cs
- VBIdentifierTrimConverter.cs
- HtmlTableRowCollection.cs
- QuaternionAnimation.cs
- ColorMatrix.cs
- OdbcReferenceCollection.cs
- DispatcherProcessingDisabled.cs
- commandenforcer.cs
- SessionParameter.cs
- BulletDecorator.cs
- SettingsAttributeDictionary.cs
- RSAPKCS1SignatureFormatter.cs
- OdbcCommandBuilder.cs
- ObjectItemCollectionAssemblyCacheEntry.cs
- OleDbTransaction.cs
- QilTypeChecker.cs
- smtppermission.cs
- UpdateTracker.cs
- AnnotationMap.cs
- FrameworkRichTextComposition.cs
- VerificationException.cs
- ControlParameter.cs
- AspNetHostingPermission.cs
- KnownBoxes.cs
- NativeActivityTransactionContext.cs
- PersonalizationProvider.cs
- ImportCatalogPart.cs
- X509ChainElement.cs
- LinkedResourceCollection.cs
- SyntaxCheck.cs
- DataGridViewCheckBoxCell.cs
- ObjectToIdCache.cs
- CardSpaceSelector.cs
- AssertUtility.cs