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
- GridViewCancelEditEventArgs.cs
- Partitioner.cs
- Geometry3D.cs
- mongolianshape.cs
- ReceiveActivityValidator.cs
- KeyValuePair.cs
- wgx_commands.cs
- sqlpipe.cs
- RequestCachePolicyConverter.cs
- entitydatasourceentitysetnameconverter.cs
- ResourceDefaultValueAttribute.cs
- Image.cs
- SingleAnimationUsingKeyFrames.cs
- SerialReceived.cs
- Constants.cs
- ServiceConfigurationTraceRecord.cs
- WindowsAuthenticationEventArgs.cs
- EnvironmentPermission.cs
- ContractValidationHelper.cs
- KnownColorTable.cs
- ComponentRenameEvent.cs
- ConfigXmlElement.cs
- _SingleItemRequestCache.cs
- SqlCacheDependencyDatabaseCollection.cs
- SafeHandle.cs
- ComplexType.cs
- BuiltInPermissionSets.cs
- ProfilePropertyNameValidator.cs
- TextChangedEventArgs.cs
- DataRowCollection.cs
- ReferenceEqualityComparer.cs
- ClientOperation.cs
- PenLineCapValidation.cs
- Splitter.cs
- Int32Animation.cs
- ToolStripLocationCancelEventArgs.cs
- SystemNetworkInterface.cs
- CombinedGeometry.cs
- HTMLTextWriter.cs
- XmlCustomFormatter.cs
- ProviderUtil.cs
- ValidationRuleCollection.cs
- mda.cs
- FixedSOMPage.cs
- ASCIIEncoding.cs
- SystemWebCachingSectionGroup.cs
- HttpCapabilitiesEvaluator.cs
- PropertyInformation.cs
- WebRequestModuleElement.cs
- Code.cs
- ByeOperationCD1AsyncResult.cs
- SqlDataSourceCommandEventArgs.cs
- XmlAttributeAttribute.cs
- ObjectPersistData.cs
- ObjectCloneHelper.cs
- GiveFeedbackEventArgs.cs
- PkcsUtils.cs
- ScrollBar.cs
- DefaultShape.cs
- UriSection.cs
- UserControl.cs
- HttpContextWrapper.cs
- SchemaImporter.cs
- CompilationSection.cs
- DBCSCodePageEncoding.cs
- ConfigXmlWhitespace.cs
- LineBreak.cs
- HostingEnvironmentWrapper.cs
- Attachment.cs
- ListBoxItemAutomationPeer.cs
- TypeForwardedFromAttribute.cs
- FieldDescriptor.cs
- AgileSafeNativeMemoryHandle.cs
- PanningMessageFilter.cs
- Error.cs
- WebPartDisplayModeCancelEventArgs.cs
- PasswordBox.cs
- FrameworkElementAutomationPeer.cs
- BindableTemplateBuilder.cs
- FileChangesMonitor.cs
- WebBrowser.cs
- ScaleTransform.cs
- ReadOnlyDictionary.cs
- httpapplicationstate.cs
- TextAutomationPeer.cs
- StandardCommands.cs
- UnsafeCollabNativeMethods.cs
- ObjectSecurity.cs
- ExcCanonicalXml.cs
- AttachedAnnotationChangedEventArgs.cs
- TextEditorLists.cs
- AvTraceDetails.cs
- SqlOuterApplyReducer.cs
- DomainUpDown.cs
- IdentitySection.cs
- WebPartDeleteVerb.cs
- BindingExpressionUncommonField.cs
- PermissionToken.cs
- ElapsedEventArgs.cs
- MaskedTextBox.cs