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
- CapacityStreamGeometryContext.cs
- DateTimeStorage.cs
- NetworkInformationException.cs
- LocalFileSettingsProvider.cs
- AssemblyResourceLoader.cs
- TypeForwardedToAttribute.cs
- SqlDataSourceStatusEventArgs.cs
- StorageSetMapping.cs
- BasicViewGenerator.cs
- InitializationEventAttribute.cs
- GrammarBuilder.cs
- WebCategoryAttribute.cs
- TextSerializer.cs
- ScriptMethodAttribute.cs
- DetailsView.cs
- Menu.cs
- XmlNodeList.cs
- KnowledgeBase.cs
- Bitmap.cs
- SqlDataSourceFilteringEventArgs.cs
- InvokeHandlers.cs
- CacheEntry.cs
- ConstraintStruct.cs
- ListViewItemEventArgs.cs
- MultiView.cs
- SiteMapHierarchicalDataSourceView.cs
- SessionIDManager.cs
- SendMessageContent.cs
- CustomAssemblyResolver.cs
- StrokeNodeOperations2.cs
- XmlNodeList.cs
- Span.cs
- RecordConverter.cs
- MatchAllMessageFilter.cs
- ConversionContext.cs
- MissingManifestResourceException.cs
- EntityReference.cs
- Sql8ExpressionRewriter.cs
- ToolStripManager.cs
- BitmapEncoder.cs
- UntypedNullExpression.cs
- XmlReflectionImporter.cs
- ColumnResizeUndoUnit.cs
- ProfessionalColorTable.cs
- BaseDataBoundControlDesigner.cs
- PartialClassGenerationTaskInternal.cs
- SoapCommonClasses.cs
- DelayedRegex.cs
- OleDbEnumerator.cs
- QuaternionRotation3D.cs
- LayoutTable.cs
- Panel.cs
- CanonicalizationDriver.cs
- SpeechRecognizer.cs
- GridSplitterAutomationPeer.cs
- DelegateTypeInfo.cs
- HtmlContainerControl.cs
- PropertyEmitterBase.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- HtmlForm.cs
- CallbackException.cs
- TextFormatter.cs
- RootBuilder.cs
- TransformerTypeCollection.cs
- SHA512Cng.cs
- DelimitedListTraceListener.cs
- DefaultParameterValueAttribute.cs
- PropertyRecord.cs
- SafeMemoryMappedFileHandle.cs
- StreamingContext.cs
- TransformerConfigurationWizardBase.cs
- SpellerStatusTable.cs
- MeasureData.cs
- SqlBulkCopyColumnMapping.cs
- X509UI.cs
- ResourcePool.cs
- Module.cs
- PersonalizableAttribute.cs
- ResourceContainer.cs
- SqlMetaData.cs
- X509CertificateCollection.cs
- SimpleWorkerRequest.cs
- VisemeEventArgs.cs
- DocumentsTrace.cs
- PackageRelationshipCollection.cs
- PeerNodeTraceRecord.cs
- TitleStyle.cs
- FastPropertyAccessor.cs
- TextLineBreak.cs
- OleDbCommand.cs
- SID.cs
- CryptoKeySecurity.cs
- FilterElement.cs
- RadialGradientBrush.cs
- ErrorRuntimeConfig.cs
- ParserHooks.cs
- InstancePersistenceCommandException.cs
- IsolatedStoragePermission.cs
- XmlExceptionHelper.cs
- BatchParser.cs