Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- StylusOverProperty.cs
- ExpressionConverter.cs
- HtmlElementErrorEventArgs.cs
- ObfuscateAssemblyAttribute.cs
- InvokeMethodActivityDesigner.cs
- DataGridViewColumnStateChangedEventArgs.cs
- RowBinding.cs
- IFlowDocumentViewer.cs
- SelectedDatesCollection.cs
- CodeTypeReference.cs
- DelegatingTypeDescriptionProvider.cs
- MappingException.cs
- DetailsViewModeEventArgs.cs
- SafeLocalMemHandle.cs
- TraceContextRecord.cs
- NameValueConfigurationCollection.cs
- UnknownWrapper.cs
- Argument.cs
- ObjectAnimationBase.cs
- Html32TextWriter.cs
- LifetimeMonitor.cs
- DateTimePicker.cs
- DataServiceClientException.cs
- DefaultWorkflowSchedulerService.cs
- ResXBuildProvider.cs
- ContractsBCL.cs
- HwndSource.cs
- ResourceWriter.cs
- StyleXamlParser.cs
- ProtocolsConfigurationHandler.cs
- DoubleLink.cs
- InheritanceService.cs
- CodeCatchClause.cs
- EntityViewContainer.cs
- SmiXetterAccessMap.cs
- Cursor.cs
- CompilerInfo.cs
- BinaryMessageEncodingElement.cs
- Events.cs
- SqlDataSourceView.cs
- FontDialog.cs
- PropertyConverter.cs
- DelegateArgumentValue.cs
- Stylesheet.cs
- DateTimeConverter2.cs
- DataObject.cs
- ResourceExpressionBuilder.cs
- StructuralType.cs
- BitmapCodecInfoInternal.cs
- DataBoundControlParameterTarget.cs
- FormsIdentity.cs
- SmiContextFactory.cs
- ObjectListSelectEventArgs.cs
- CellRelation.cs
- PropertyBuilder.cs
- SecurityException.cs
- Rijndael.cs
- FlowPosition.cs
- TypeUtil.cs
- XPathSelfQuery.cs
- DataObjectCopyingEventArgs.cs
- DbConnectionHelper.cs
- XmlAtomicValue.cs
- HttpHandlerAction.cs
- ReflectPropertyDescriptor.cs
- Fonts.cs
- Queue.cs
- TextBox.cs
- FormViewInsertedEventArgs.cs
- XamlWrappingReader.cs
- ToolStripHighContrastRenderer.cs
- TailPinnedEventArgs.cs
- FrameworkElementFactory.cs
- Rules.cs
- DES.cs
- ContentControl.cs
- StrongNameMembershipCondition.cs
- XmlQuerySequence.cs
- SchemaMapping.cs
- WeakReferenceList.cs
- UnsafeNativeMethods.cs
- FormViewDeleteEventArgs.cs
- HelloMessageApril2005.cs
- ToolStripPanelSelectionGlyph.cs
- SystemDropShadowChrome.cs
- EntityDescriptor.cs
- TreeView.cs
- ListItemCollection.cs
- XPathNodeList.cs
- SymbolDocumentInfo.cs
- NonParentingControl.cs
- Permission.cs
- KerberosSecurityTokenAuthenticator.cs
- _TimerThread.cs
- SimpleLine.cs
- NominalTypeEliminator.cs
- ColorInterpolationModeValidation.cs
- Validator.cs
- EncoderNLS.cs
- Effect.cs