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
- QilFactory.cs
- CultureInfo.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- TextStore.cs
- Camera.cs
- StyleXamlParser.cs
- AVElementHelper.cs
- PenThreadPool.cs
- ConfigXmlWhitespace.cs
- TextTrailingCharacterEllipsis.cs
- DataControlExtensions.cs
- RegionInfo.cs
- DataTableReader.cs
- Funcletizer.cs
- DynamicActivityTypeDescriptor.cs
- StrokeCollectionDefaultValueFactory.cs
- GlobalEventManager.cs
- ClientTargetCollection.cs
- Keyboard.cs
- HttpRuntimeSection.cs
- RelationshipManager.cs
- IconBitmapDecoder.cs
- ItemCollectionEditor.cs
- DefaultDiscoveryServiceExtension.cs
- HostSecurityManager.cs
- StaticExtensionConverter.cs
- SafeArrayTypeMismatchException.cs
- BlockUIContainer.cs
- SemanticKeyElement.cs
- Condition.cs
- Solver.cs
- x509store.cs
- X509CertificateValidator.cs
- X509Utils.cs
- BitmapInitialize.cs
- WebBrowserNavigatedEventHandler.cs
- PropertyState.cs
- SmtpMail.cs
- srgsitem.cs
- RawKeyboardInputReport.cs
- DataGridViewHitTestInfo.cs
- SystemColors.cs
- ToolBarTray.cs
- EncoderParameter.cs
- DrawingVisualDrawingContext.cs
- EventWaitHandle.cs
- DBDataPermissionAttribute.cs
- ConfigXmlText.cs
- ListViewGroup.cs
- XPathNode.cs
- SqlNodeAnnotations.cs
- _DisconnectOverlappedAsyncResult.cs
- UpdatePanelControlTrigger.cs
- EncodingFallbackAwareXmlTextWriter.cs
- XmlRawWriter.cs
- TextBoxRenderer.cs
- GraphicsState.cs
- SetterBaseCollection.cs
- SizeChangedEventArgs.cs
- ScrollBar.cs
- ProfileBuildProvider.cs
- UnknownBitmapEncoder.cs
- TreeNodeStyleCollectionEditor.cs
- TerminateDesigner.cs
- GeometryGroup.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- ResourceDictionaryCollection.cs
- PointCollectionConverter.cs
- SpeechSynthesizer.cs
- SortedDictionary.cs
- ProcessInfo.cs
- HScrollBar.cs
- SymbolMethod.cs
- MetadataArtifactLoaderComposite.cs
- DependencyStoreSurrogate.cs
- TreePrinter.cs
- MailWebEventProvider.cs
- KerberosSecurityTokenProvider.cs
- ellipse.cs
- TextBlock.cs
- ReferenceEqualityComparer.cs
- ForwardPositionQuery.cs
- CustomAttributeFormatException.cs
- Repeater.cs
- ProxyHwnd.cs
- PreviewKeyDownEventArgs.cs
- EntityDataSourceChangingEventArgs.cs
- CrossSiteScriptingValidation.cs
- MemoryMappedViewAccessor.cs
- ConversionContext.cs
- InstanceOwnerException.cs
- KeyTimeConverter.cs
- SizeFConverter.cs
- OutputScopeManager.cs
- Section.cs
- DataGridViewColumnCollectionDialog.cs
- MinimizableAttributeTypeConverter.cs
- InvalidProgramException.cs
- Crc32.cs
- Publisher.cs