Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- SafeHandles.cs
- StatusBarItemAutomationPeer.cs
- PanelStyle.cs
- Hashtable.cs
- MemberInfoSerializationHolder.cs
- AmbientLight.cs
- CodeFieldReferenceExpression.cs
- FontFaceLayoutInfo.cs
- WindowsAuthenticationEventArgs.cs
- DataRow.cs
- ObjectStateEntry.cs
- CodeMemberProperty.cs
- ExpressionValueEditor.cs
- SimpleBitVector32.cs
- ContractDescription.cs
- ArcSegment.cs
- MetadataSource.cs
- PartitionerQueryOperator.cs
- EntityCommandDefinition.cs
- CompositionTarget.cs
- AxisAngleRotation3D.cs
- ObsoleteAttribute.cs
- ControlCommandSet.cs
- WebBrowser.cs
- SqlDependencyListener.cs
- DesignSurfaceServiceContainer.cs
- SimpleType.cs
- WebPartHeaderCloseVerb.cs
- DictionarySectionHandler.cs
- DropSource.cs
- SchemaAttDef.cs
- NativeMethods.cs
- Attributes.cs
- XsltArgumentList.cs
- TraceSwitch.cs
- OLEDB_Util.cs
- DataRecordInternal.cs
- IISMapPath.cs
- MethodExpression.cs
- TdsParserSessionPool.cs
- TrackingProfileManager.cs
- DNS.cs
- WebPartDescription.cs
- DocumentationServerProtocol.cs
- AdornerPresentationContext.cs
- PhoneCall.cs
- JpegBitmapDecoder.cs
- SharedDp.cs
- XmlSignatureProperties.cs
- VSWCFServiceContractGenerator.cs
- StylusPlugInCollection.cs
- UserControlFileEditor.cs
- UnsafeNativeMethods.cs
- SchemaMapping.cs
- COM2PropertyDescriptor.cs
- TextSpanModifier.cs
- OperatingSystem.cs
- Completion.cs
- XmlUTF8TextWriter.cs
- SchemaImporterExtensionsSection.cs
- DbProviderFactories.cs
- GradientSpreadMethodValidation.cs
- CorrelationValidator.cs
- XmlCollation.cs
- BidOverLoads.cs
- GenericEnumerator.cs
- SerializationStore.cs
- OdbcConnectionOpen.cs
- ContainerVisual.cs
- graph.cs
- ConnectionStringSettings.cs
- MultitargetingHelpers.cs
- ProxyAttribute.cs
- CheckBox.cs
- ListViewTableRow.cs
- HttpResponseInternalWrapper.cs
- UIInitializationException.cs
- PopupControlService.cs
- ListViewItem.cs
- BinHexDecoder.cs
- SoapRpcServiceAttribute.cs
- UserControlDesigner.cs
- TextAction.cs
- BitmapFrameEncode.cs
- CustomLineCap.cs
- StylusPointPropertyUnit.cs
- OutputCacheProfileCollection.cs
- XmlIncludeAttribute.cs
- FramingFormat.cs
- Send.cs
- ClosureBinding.cs
- PriorityBindingExpression.cs
- HyperLinkDataBindingHandler.cs
- VectorConverter.cs
- RightsDocument.cs
- ResourceAssociationSet.cs
- ElementsClipboardData.cs
- XmlCodeExporter.cs
- WSSecurityPolicy11.cs
- HttpWebRequestElement.cs