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
- OleDbDataAdapter.cs
- AccessViolationException.cs
- QueryContext.cs
- NotifyParentPropertyAttribute.cs
- Annotation.cs
- nulltextnavigator.cs
- RedirectionProxy.cs
- TrackingExtract.cs
- DBParameter.cs
- TrackingValidationObjectDictionary.cs
- DataListCommandEventArgs.cs
- SortExpressionBuilder.cs
- ManifestResourceInfo.cs
- XamlPathDataSerializer.cs
- DPCustomTypeDescriptor.cs
- StylusLogic.cs
- PenThread.cs
- SchemaTableOptionalColumn.cs
- ApplicationFileParser.cs
- MembershipUser.cs
- CodeDelegateInvokeExpression.cs
- TableCellCollection.cs
- HistoryEventArgs.cs
- DocumentManager.cs
- TemplateBuilder.cs
- PrimitiveDataContract.cs
- ObjectListDataBindEventArgs.cs
- GridViewUpdateEventArgs.cs
- SHA1.cs
- DSASignatureDeformatter.cs
- SimplePropertyEntry.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- ServiceReference.cs
- CommandConverter.cs
- RuntimeCompatibilityAttribute.cs
- COM2TypeInfoProcessor.cs
- CompositeCollectionView.cs
- ProcessStartInfo.cs
- Typography.cs
- DisableDpiAwarenessAttribute.cs
- FileSecurity.cs
- HashSetEqualityComparer.cs
- NegatedCellConstant.cs
- HtmlControl.cs
- PersonalizationProviderHelper.cs
- hresults.cs
- RepeatButton.cs
- LicenseException.cs
- GlobalizationAssembly.cs
- StrokeCollectionDefaultValueFactory.cs
- SapiInterop.cs
- Control.cs
- WindowsGraphicsCacheManager.cs
- InfoCardCryptoHelper.cs
- DelegatingConfigHost.cs
- Literal.cs
- newinstructionaction.cs
- SqlDataSourceCommandEventArgs.cs
- MimeBasePart.cs
- SemanticTag.cs
- XmlQualifiedName.cs
- XmlSchemaObjectCollection.cs
- sqlstateclientmanager.cs
- ResourcesGenerator.cs
- SqlFileStream.cs
- WindowsListView.cs
- AutoGeneratedField.cs
- XsltQilFactory.cs
- ServiceOperation.cs
- shaperfactoryquerycacheentry.cs
- WmlListAdapter.cs
- RadioButton.cs
- WSDualHttpSecurityMode.cs
- SoundPlayer.cs
- List.cs
- SchemaAttDef.cs
- NameValueConfigurationElement.cs
- CodePageUtils.cs
- DependencyPropertyDescriptor.cs
- BufferModesCollection.cs
- GridViewColumnHeader.cs
- Brush.cs
- RequestQueue.cs
- RuntimeHelpers.cs
- StoryFragments.cs
- SqlError.cs
- Operator.cs
- DebugHandleTracker.cs
- XXXInfos.cs
- CustomErrorsSectionWrapper.cs
- ControlParameter.cs
- webbrowsersite.cs
- MouseDevice.cs
- FrameworkReadOnlyPropertyMetadata.cs
- RuntimeDelegateArgument.cs
- AuthenticationServiceManager.cs
- DbFunctionCommandTree.cs
- EventPrivateKey.cs
- documentsequencetextview.cs
- QuestionEventArgs.cs