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
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- WeakEventTable.cs
- IApplicationTrustManager.cs
- IgnoreSection.cs
- DecoderExceptionFallback.cs
- HtmlTableCell.cs
- FirstMatchCodeGroup.cs
- OrderByQueryOptionExpression.cs
- URL.cs
- DataGridTableStyleMappingNameEditor.cs
- PnrpPermission.cs
- ButtonChrome.cs
- APCustomTypeDescriptor.cs
- DBConcurrencyException.cs
- JpegBitmapDecoder.cs
- ThemeInfoAttribute.cs
- LinkClickEvent.cs
- DefaultAsyncDataDispatcher.cs
- AsyncStreamReader.cs
- PackagingUtilities.cs
- DataGridViewRowConverter.cs
- SamlAssertionKeyIdentifierClause.cs
- COSERVERINFO.cs
- EncoderNLS.cs
- XmlArrayItemAttribute.cs
- VBIdentifierNameEditor.cs
- ConstraintConverter.cs
- HtmlElementErrorEventArgs.cs
- UIAgentAsyncParams.cs
- WorkflowDesignerColors.cs
- PropertyInformation.cs
- __ConsoleStream.cs
- EntityContainerAssociationSetEnd.cs
- WorkflowViewStateService.cs
- TextSearch.cs
- DataMisalignedException.cs
- Nullable.cs
- InstancePersistenceEvent.cs
- MessageQueuePermissionAttribute.cs
- EnvelopeVersion.cs
- HtmlWindow.cs
- TrackingProfileCache.cs
- HttpStreamXmlDictionaryReader.cs
- RangeContentEnumerator.cs
- OutOfMemoryException.cs
- XmlSchemaGroupRef.cs
- ProfileSection.cs
- Converter.cs
- Queue.cs
- XmlTextEncoder.cs
- Frame.cs
- TransformerTypeCollection.cs
- OrCondition.cs
- ColorTransform.cs
- _NativeSSPI.cs
- CounterSampleCalculator.cs
- GetReadStreamResult.cs
- Glyph.cs
- Lasso.cs
- ArrangedElementCollection.cs
- SqlBulkCopyColumnMapping.cs
- GcSettings.cs
- EntityCommandExecutionException.cs
- TimeManager.cs
- VersionedStream.cs
- DockPatternIdentifiers.cs
- SizeChangedEventArgs.cs
- Cloud.cs
- WorkflowIdleBehavior.cs
- CodeAccessSecurityEngine.cs
- ReachSerializer.cs
- ShaderEffect.cs
- X509Utils.cs
- StrongNamePublicKeyBlob.cs
- FocusManager.cs
- DetailsViewPageEventArgs.cs
- LinkConverter.cs
- NotFiniteNumberException.cs
- DropTarget.cs
- JsonQueryStringConverter.cs
- SmiMetaData.cs
- DataException.cs
- XmlSchemaAttributeGroupRef.cs
- BaseCodePageEncoding.cs
- FrameworkTextComposition.cs
- SelectorAutomationPeer.cs
- SpecularMaterial.cs
- UserMapPath.cs
- TableCell.cs
- Metafile.cs
- StandardOleMarshalObject.cs
- DbExpressionBuilder.cs
- ToolZone.cs
- AssemblySettingAttributes.cs
- XmlSchemaValidator.cs
- GuidelineSet.cs
- GradientStop.cs
- PerformanceCounter.cs
- PageParser.cs
- WinEventWrap.cs