Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TemplateControlParser.cs
- DeclaredTypeValidatorAttribute.cs
- GeneratedCodeAttribute.cs
- SecurityRuntime.cs
- Dispatcher.cs
- AnnotationService.cs
- ColumnWidthChangingEvent.cs
- IntersectQueryOperator.cs
- TemplatedWizardStep.cs
- AmbientValueAttribute.cs
- SqlDataSourceStatusEventArgs.cs
- DataGridViewRowEventArgs.cs
- CodeRemoveEventStatement.cs
- LocalizabilityAttribute.cs
- ComponentChangingEvent.cs
- VarRemapper.cs
- FrameworkTemplate.cs
- BufferBuilder.cs
- Debug.cs
- RelationshipEndMember.cs
- StylusOverProperty.cs
- MarginsConverter.cs
- CompilerTypeWithParams.cs
- Adorner.cs
- PrePrepareMethodAttribute.cs
- ImageBrush.cs
- GeneralTransform3D.cs
- ScopedMessagePartSpecification.cs
- DocumentApplication.cs
- TableHeaderCell.cs
- MarkupProperty.cs
- BindingListCollectionView.cs
- TabControlAutomationPeer.cs
- ResourceContainer.cs
- LoginNameDesigner.cs
- OciLobLocator.cs
- Variant.cs
- HtmlLink.cs
- MetaType.cs
- OleTxTransaction.cs
- CommandEventArgs.cs
- Module.cs
- UnionCodeGroup.cs
- OleDbError.cs
- SingleAnimationUsingKeyFrames.cs
- LinqDataSourceUpdateEventArgs.cs
- EntitySetBase.cs
- StandardOleMarshalObject.cs
- SplashScreen.cs
- AuthorizationSection.cs
- HttpCookie.cs
- ObjectDataSourceStatusEventArgs.cs
- TakeQueryOptionExpression.cs
- SettingsProperty.cs
- ParseHttpDate.cs
- XPathNavigatorKeyComparer.cs
- ScrollEvent.cs
- FunctionParameter.cs
- ButtonRenderer.cs
- RangeValidator.cs
- TypedReference.cs
- NamedPermissionSet.cs
- DesignerDataStoredProcedure.cs
- DbInsertCommandTree.cs
- StreamReader.cs
- ObjectConverter.cs
- Collection.cs
- BitmapDecoder.cs
- List.cs
- PerfCounters.cs
- InstanceView.cs
- HybridObjectCache.cs
- EnvelopedSignatureTransform.cs
- RegisteredScript.cs
- PKCS1MaskGenerationMethod.cs
- HeaderedContentControl.cs
- TCEAdapterGenerator.cs
- EditModeSwitchButton.cs
- PolygonHotSpot.cs
- FormViewDeleteEventArgs.cs
- COM2Enum.cs
- ReflectTypeDescriptionProvider.cs
- XmlDeclaration.cs
- PanelStyle.cs
- X509LogoTypeExtension.cs
- DependencyObjectPropertyDescriptor.cs
- WindowsBrush.cs
- StringStorage.cs
- BindingWorker.cs
- RootNamespaceAttribute.cs
- ProcessHostMapPath.cs
- Point3D.cs
- SerializationException.cs
- AuthenticatedStream.cs
- FieldAccessException.cs
- WindowsFormsSectionHandler.cs
- GeneralTransform2DTo3D.cs
- XmlWellformedWriter.cs
- StylusPointProperty.cs
- ComAdminInterfaces.cs