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
- Knowncolors.cs
- SignatureResourcePool.cs
- DecimalConstantAttribute.cs
- CombinedGeometry.cs
- MultipleViewProviderWrapper.cs
- StorageEntityContainerMapping.cs
- FloatUtil.cs
- ThrowHelper.cs
- StructuralType.cs
- SingleAnimation.cs
- PartialCachingControl.cs
- SqlInfoMessageEvent.cs
- EventWaitHandle.cs
- NativeMethods.cs
- PenThreadPool.cs
- CharacterHit.cs
- SectionXmlInfo.cs
- PenLineJoinValidation.cs
- Property.cs
- RadioButtonRenderer.cs
- WebEncodingValidator.cs
- DesignConnection.cs
- HMACMD5.cs
- PrivilegeNotHeldException.cs
- KeyValuePair.cs
- LambdaExpression.cs
- ActivityExecutor.cs
- ExtensionWindowResizeGrip.cs
- BasePropertyDescriptor.cs
- basenumberconverter.cs
- basenumberconverter.cs
- SafeRightsManagementSessionHandle.cs
- SuppressMessageAttribute.cs
- BaseValidator.cs
- SafeRightsManagementSessionHandle.cs
- backend.cs
- JobCollate.cs
- ControlParameter.cs
- ImageSource.cs
- Math.cs
- DllHostedComPlusServiceHost.cs
- PublisherIdentityPermission.cs
- HttpDigestClientCredential.cs
- CultureInfo.cs
- ObjectReaderCompiler.cs
- ValidatorCollection.cs
- TcpAppDomainProtocolHandler.cs
- FontStyles.cs
- PenThreadPool.cs
- EntityClassGenerator.cs
- DiscoveryClient.cs
- PerformanceCounterPermissionEntryCollection.cs
- RemoteArgument.cs
- XmlParserContext.cs
- RealizationContext.cs
- SecurityException.cs
- StructuralObject.cs
- recordstatescratchpad.cs
- ProfessionalColors.cs
- dbenumerator.cs
- MembershipValidatePasswordEventArgs.cs
- KnownBoxes.cs
- CustomCredentialPolicy.cs
- DataGridViewColumnDesignTimeVisibleAttribute.cs
- EntityWrapper.cs
- InstanceOwner.cs
- SQLGuidStorage.cs
- CompilerParameters.cs
- Interlocked.cs
- WSSecurityOneDotZeroSendSecurityHeader.cs
- IISUnsafeMethods.cs
- DataRecordInternal.cs
- DetailsViewPagerRow.cs
- XmlSchemaObjectCollection.cs
- DBPropSet.cs
- Marshal.cs
- ListViewSortEventArgs.cs
- TextPattern.cs
- RectAnimation.cs
- DocumentApplicationJournalEntry.cs
- HttpHandlersInstallComponent.cs
- HMACSHA512.cs
- SafeProcessHandle.cs
- LicenseException.cs
- TextSelectionHelper.cs
- DataSysAttribute.cs
- _LocalDataStoreMgr.cs
- InspectionWorker.cs
- SqlGatherProducedAliases.cs
- ConfigXmlElement.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- UrlPropertyAttribute.cs
- XmlElementElementCollection.cs
- WorkflowIdleBehavior.cs
- ColorConverter.cs
- basevalidator.cs
- _OverlappedAsyncResult.cs
- DataGridParentRows.cs
- DataServicePagingProviderWrapper.cs
- DataServiceHost.cs