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
- FreezableCollection.cs
- EncoderParameter.cs
- _SslStream.cs
- PackagePart.cs
- TaskFormBase.cs
- peersecuritysettings.cs
- TransactionChannelFaultConverter.cs
- TemplateManager.cs
- ReachIDocumentPaginatorSerializerAsync.cs
- NeutralResourcesLanguageAttribute.cs
- SrgsElement.cs
- HttpCachePolicyElement.cs
- AbstractDataSvcMapFileLoader.cs
- HostedElements.cs
- XmlElementAttribute.cs
- MessageLoggingFilterTraceRecord.cs
- OverrideMode.cs
- XmlElement.cs
- PageParserFilter.cs
- WorkflowInspectionServices.cs
- TimerElapsedEvenArgs.cs
- Panel.cs
- LinkConverter.cs
- StorageScalarPropertyMapping.cs
- Brush.cs
- OutputCacheProfile.cs
- QuaternionAnimationBase.cs
- HierarchicalDataSourceControl.cs
- DbDeleteCommandTree.cs
- CroppedBitmap.cs
- FormsAuthenticationEventArgs.cs
- Site.cs
- ReadOnlyDataSourceView.cs
- MessageQueue.cs
- AppModelKnownContentFactory.cs
- AssemblySettingAttributes.cs
- XmlDataImplementation.cs
- WmiInstallComponent.cs
- VideoDrawing.cs
- LayoutTableCell.cs
- SaveFileDialog.cs
- MarkupWriter.cs
- StyleBamlTreeBuilder.cs
- Inflater.cs
- MessageBox.cs
- StringValidator.cs
- TreeNodeConverter.cs
- RoleServiceManager.cs
- ListViewTableCell.cs
- HtmlInputHidden.cs
- BitFlagsGenerator.cs
- PackWebRequestFactory.cs
- OutputScope.cs
- shaperfactory.cs
- VisualBrush.cs
- DefinitionBase.cs
- HTMLTextWriter.cs
- Line.cs
- Zone.cs
- OSEnvironmentHelper.cs
- NavigatingCancelEventArgs.cs
- FormsAuthenticationTicket.cs
- InteropEnvironment.cs
- MailAddressCollection.cs
- ContextProperty.cs
- WindowsBrush.cs
- InfiniteIntConverter.cs
- FrameworkElementAutomationPeer.cs
- Calendar.cs
- Part.cs
- Hashtable.cs
- XmlBaseReader.cs
- FixedTextPointer.cs
- PerfCounters.cs
- FilterException.cs
- Bitmap.cs
- TableLayoutColumnStyleCollection.cs
- XmlDataSourceNodeDescriptor.cs
- DelayedRegex.cs
- PageAsyncTaskManager.cs
- _CookieModule.cs
- HttpValueCollection.cs
- EventWaitHandle.cs
- ElementHostAutomationPeer.cs
- WindowsRichEditRange.cs
- XPathQilFactory.cs
- ErrorInfoXmlDocument.cs
- ListItemCollection.cs
- AbandonedMutexException.cs
- DesignerProperties.cs
- QuadraticBezierSegment.cs
- Int64KeyFrameCollection.cs
- SqlBulkCopy.cs
- TraceContextEventArgs.cs
- TemplateEditingVerb.cs
- Monitor.cs
- ClosableStream.cs
- ParallelTimeline.cs
- GeometryCollection.cs
- CodeMemberMethod.cs