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
- ConfigurationSectionCollection.cs
- _NtlmClient.cs
- MouseGestureConverter.cs
- DetailsViewUpdatedEventArgs.cs
- ListDesigner.cs
- DelimitedListTraceListener.cs
- RemoteWebConfigurationHostStream.cs
- SapiRecoContext.cs
- SettingsBase.cs
- BaseAsyncResult.cs
- Rect3D.cs
- login.cs
- StrokeCollectionDefaultValueFactory.cs
- WindowsSlider.cs
- ColorContext.cs
- Utils.cs
- FontStyles.cs
- PagerStyle.cs
- CommandBindingCollection.cs
- Tag.cs
- NumberAction.cs
- PackagePartCollection.cs
- IWorkflowDebuggerService.cs
- LocalizationComments.cs
- CompositeFontParser.cs
- SelfIssuedAuthRSAPKCS1SignatureDeformatter.cs
- CallTemplateAction.cs
- ViewStateException.cs
- UnknownWrapper.cs
- ReachPrintTicketSerializer.cs
- Menu.cs
- Helpers.cs
- TypefaceMetricsCache.cs
- HttpCookiesSection.cs
- PageVisual.cs
- XPathMessageFilter.cs
- RangeValidator.cs
- Scanner.cs
- MultilineStringEditor.cs
- TypeReference.cs
- InstanceDescriptor.cs
- XPathNodeHelper.cs
- UnsafeNativeMethods.cs
- RelatedEnd.cs
- DataGridViewSelectedRowCollection.cs
- AxisAngleRotation3D.cs
- RadialGradientBrush.cs
- ConfigXmlDocument.cs
- InfiniteIntConverter.cs
- CorePropertiesFilter.cs
- ProvidersHelper.cs
- OperationParameterInfoCollection.cs
- QilReference.cs
- CatalogZoneDesigner.cs
- SendingRequestEventArgs.cs
- ToolStripContentPanelDesigner.cs
- RIPEMD160Managed.cs
- PartialCachingControl.cs
- _UncName.cs
- ProjectionPath.cs
- Types.cs
- DataGrid.cs
- NativeObjectSecurity.cs
- MimeXmlReflector.cs
- DataBinder.cs
- RowSpanVector.cs
- FixedSOMTableRow.cs
- TableCellCollection.cs
- ObjectPropertyMapping.cs
- MappingMetadataHelper.cs
- TreeIterator.cs
- ListBoxAutomationPeer.cs
- StorageEntityContainerMapping.cs
- Int64AnimationBase.cs
- Process.cs
- panel.cs
- InternalBase.cs
- SqlDataSourceCustomCommandEditor.cs
- RuntimeEnvironment.cs
- httpapplicationstate.cs
- TextCompositionManager.cs
- GrabHandleGlyph.cs
- XmlCompatibilityReader.cs
- ProgressBarBrushConverter.cs
- NullReferenceException.cs
- CacheEntry.cs
- Package.cs
- ConditionalAttribute.cs
- StringSource.cs
- IApplicationTrustManager.cs
- DataSourceXmlTextReader.cs
- PingReply.cs
- Collection.cs
- VisualStyleInformation.cs
- SortedDictionary.cs
- UnsafeNativeMethods.cs
- DynamicResourceExtension.cs
- ApplicationHost.cs
- DataGridColumnHeaderAutomationPeer.cs
- Stream.cs