Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / 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: [....]/text/DesignDocsAndSpecs/Text%20Formatting%20API.doc
//
// Created: 12-5-2004 [....] ([....])
//
//-----------------------------------------------------------------------
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
- WorkflowRequestContext.cs
- RtfControlWordInfo.cs
- MetadataException.cs
- EntityDataSourceWrapper.cs
- FileSystemWatcher.cs
- BehaviorEditorPart.cs
- Odbc32.cs
- ForeignKeyConstraint.cs
- CodeThrowExceptionStatement.cs
- XmlWrappingWriter.cs
- HelloOperation11AsyncResult.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- CodeComment.cs
- ToolStripRenderEventArgs.cs
- SchemaTableOptionalColumn.cs
- HttpPostProtocolReflector.cs
- DatePickerTextBox.cs
- PkcsUtils.cs
- ObjectDataSource.cs
- XamlFilter.cs
- FrugalMap.cs
- TableCellCollection.cs
- HMACSHA1.cs
- ListBoxItemAutomationPeer.cs
- Mapping.cs
- SQLInt64.cs
- ValidationError.cs
- UserPersonalizationStateInfo.cs
- Schema.cs
- ObjectDataSourceView.cs
- SplineKeyFrames.cs
- EtwTrackingParticipant.cs
- ExpressionBuilder.cs
- Misc.cs
- DbFunctionCommandTree.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- AdornerHitTestResult.cs
- AccessDataSourceView.cs
- ListViewGroupConverter.cs
- HttpClientCertificate.cs
- SafeThreadHandle.cs
- PrintingPermission.cs
- MatrixTransform.cs
- ListBindingHelper.cs
- ScrollPattern.cs
- ProfileInfo.cs
- VisualStyleTypesAndProperties.cs
- SizeFConverter.cs
- SendMailErrorEventArgs.cs
- MulticastDelegate.cs
- XmlNamedNodeMap.cs
- ConfigurationErrorsException.cs
- Error.cs
- XPathScanner.cs
- SByteConverter.cs
- SystemDropShadowChrome.cs
- XmlEncoding.cs
- EdmToObjectNamespaceMap.cs
- parserscommon.cs
- DrawingAttributeSerializer.cs
- WindowsBrush.cs
- RSAPKCS1SignatureDeformatter.cs
- RegexStringValidatorAttribute.cs
- WindowsImpersonationContext.cs
- BitmapEffectInput.cs
- UntrustedRecipientException.cs
- HostingEnvironment.cs
- InsufficientMemoryException.cs
- RectAnimationClockResource.cs
- HashCryptoHandle.cs
- HostProtectionPermission.cs
- LinearKeyFrames.cs
- TypeDelegator.cs
- PropertyGridCommands.cs
- SubtreeProcessor.cs
- XmlSchemaSequence.cs
- DesignerLinkAdapter.cs
- SimpleType.cs
- RealizationContext.cs
- DecimalKeyFrameCollection.cs
- ClientWindowsAuthenticationMembershipProvider.cs
- Filter.cs
- SchemaMerger.cs
- StructuredTypeEmitter.cs
- Point3DKeyFrameCollection.cs
- DynamicArgumentDesigner.xaml.cs
- Normalization.cs
- ImageKeyConverter.cs
- BufferAllocator.cs
- BindingSource.cs
- CompositeKey.cs
- NullToBooleanConverter.cs
- WebPartHelpVerb.cs
- ControlSerializer.cs
- MediaPlayer.cs
- WebDisplayNameAttribute.cs
- StateBag.cs
- CursorInteropHelper.cs
- MSG.cs
- RepeaterCommandEventArgs.cs