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
- PeerApplication.cs
- RadioButton.cs
- FixedDocumentPaginator.cs
- ItemMap.cs
- ByteStorage.cs
- HtmlButton.cs
- NetworkInterface.cs
- ComponentRenameEvent.cs
- LocalClientSecuritySettings.cs
- HierarchicalDataBoundControlAdapter.cs
- OptimizedTemplateContentHelper.cs
- Solver.cs
- GeometryHitTestParameters.cs
- TrackingMemoryStreamFactory.cs
- FrameSecurityDescriptor.cs
- SpellerInterop.cs
- RelationshipEntry.cs
- DataTrigger.cs
- FilteredDataSetHelper.cs
- EntityDataSourceStatementEditorForm.cs
- ServiceDescription.cs
- GenericsInstances.cs
- shaperfactoryquerycacheentry.cs
- Canvas.cs
- CryptoConfig.cs
- RectangleF.cs
- StorageComplexTypeMapping.cs
- Inflater.cs
- TrustManager.cs
- NonVisualControlAttribute.cs
- DataGridViewLinkColumn.cs
- COM2ICategorizePropertiesHandler.cs
- BooleanKeyFrameCollection.cs
- Missing.cs
- ButtonFieldBase.cs
- DnsElement.cs
- AddInAdapter.cs
- SqlSelectStatement.cs
- PictureBox.cs
- BindingNavigator.cs
- XmlSchemaImporter.cs
- SByteStorage.cs
- SynchronizingStream.cs
- ResolveCriteriaCD1.cs
- ToolStripContainerDesigner.cs
- DesignerForm.cs
- OleDbCommandBuilder.cs
- IncrementalReadDecoders.cs
- DataGridColumnHeaderItemAutomationPeer.cs
- Attributes.cs
- SignedPkcs7.cs
- ImageConverter.cs
- ProcessModelInfo.cs
- ComPlusThreadInitializer.cs
- URL.cs
- Imaging.cs
- InputEventArgs.cs
- KeyTime.cs
- HierarchicalDataBoundControlAdapter.cs
- DocumentScope.cs
- PassportAuthenticationModule.cs
- XmlTypeMapping.cs
- TextBox.cs
- MessageDirection.cs
- ImpersonationContext.cs
- DataGridViewCellFormattingEventArgs.cs
- BufferedWebEventProvider.cs
- LightweightEntityWrapper.cs
- BuildManagerHost.cs
- VerificationAttribute.cs
- Label.cs
- WebPartUserCapability.cs
- ConfigurationSchemaErrors.cs
- HttpListenerException.cs
- DataGridViewLayoutData.cs
- BitmapDecoder.cs
- RemoteWebConfigurationHostServer.cs
- HeaderPanel.cs
- PathGradientBrush.cs
- ZipIOLocalFileDataDescriptor.cs
- ContextBase.cs
- DesignerCommandSet.cs
- ButtonRenderer.cs
- PatternMatcher.cs
- BamlMapTable.cs
- TypefaceCollection.cs
- StringValidatorAttribute.cs
- RequestUriProcessor.cs
- GridViewCommandEventArgs.cs
- XamlPoint3DCollectionSerializer.cs
- ObjectDataProvider.cs
- CompModSwitches.cs
- DesignerSerializationManager.cs
- CaseInsensitiveOrdinalStringComparer.cs
- DataGridViewRowPrePaintEventArgs.cs
- Matrix3D.cs
- QilExpression.cs
- RenderData.cs
- ThreadInterruptedException.cs
- PixelFormat.cs