Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / 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: 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. //------------------------------------------------------------------------ // // 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
- XamlRtfConverter.cs
- DriveInfo.cs
- ColorMatrix.cs
- ListView.cs
- StreamHelper.cs
- PreviewPageInfo.cs
- GacUtil.cs
- SqlUtils.cs
- SafeTimerHandle.cs
- DefaultValueMapping.cs
- JoinGraph.cs
- MDIControlStrip.cs
- String.cs
- XmlCharCheckingWriter.cs
- ScaleTransform3D.cs
- RuleEngine.cs
- ParseNumbers.cs
- ValidateNames.cs
- SessionEndingCancelEventArgs.cs
- TransformerInfoCollection.cs
- UidPropertyAttribute.cs
- EventLogTraceListener.cs
- FragmentNavigationEventArgs.cs
- XmlIgnoreAttribute.cs
- CollectionConverter.cs
- sapiproxy.cs
- RegisteredExpandoAttribute.cs
- CachedCompositeFamily.cs
- CodeIterationStatement.cs
- HideDisabledControlAdapter.cs
- EditingContext.cs
- SiteMapDataSourceView.cs
- ItemsPanelTemplate.cs
- File.cs
- TreeNode.cs
- NativeMethods.cs
- ReaderWriterLockSlim.cs
- Literal.cs
- OutputCacheSettingsSection.cs
- WrappedKeySecurityTokenParameters.cs
- ForceCopyBuildProvider.cs
- WindowsListBox.cs
- COM2IManagedPerPropertyBrowsingHandler.cs
- EdmTypeAttribute.cs
- BoolLiteral.cs
- KeyValuePairs.cs
- InlineObject.cs
- TheQuery.cs
- PermissionSetTriple.cs
- InkCanvasInnerCanvas.cs
- PenThreadPool.cs
- HandoffBehavior.cs
- BinaryParser.cs
- CqlWriter.cs
- DataTableClearEvent.cs
- VScrollBar.cs
- WebBrowserHelper.cs
- FileVersionInfo.cs
- ExpressionTextBox.xaml.cs
- ConfigurationStrings.cs
- DateTimeOffset.cs
- StyleHelper.cs
- OrderedDictionary.cs
- UrlPath.cs
- TextEffectResolver.cs
- IUnknownConstantAttribute.cs
- ContextStaticAttribute.cs
- CodeMethodReturnStatement.cs
- EnumType.cs
- AssemblyCollection.cs
- Regex.cs
- ThreadExceptionDialog.cs
- HtmlValidatorAdapter.cs
- StrokeDescriptor.cs
- _ServiceNameStore.cs
- DataRelationCollection.cs
- StylusPointPropertyUnit.cs
- DispatcherObject.cs
- QuestionEventArgs.cs
- MetricEntry.cs
- BCryptNative.cs
- TaskFactory.cs
- HttpValueCollection.cs
- TransformCollection.cs
- CloudCollection.cs
- JsonGlobals.cs
- PropertyValueUIItem.cs
- Typography.cs
- PrinterSettings.cs
- MessageHeaderDescription.cs
- IIS7UserPrincipal.cs
- SoapExtensionTypeElement.cs
- TextServicesCompartmentContext.cs
- DataRow.cs
- GetPageCompletedEventArgs.cs
- DisableDpiAwarenessAttribute.cs
- XPathSingletonIterator.cs
- DocumentGrid.cs
- Rotation3DAnimationBase.cs
- PersonalizationEntry.cs