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
- MetafileHeaderWmf.cs
- CfgParser.cs
- ParameterCollection.cs
- IArgumentProvider.cs
- TemplateControlParser.cs
- EntityContainerEmitter.cs
- WebScriptMetadataFormatter.cs
- ZipIOLocalFileDataDescriptor.cs
- MobileFormsAuthentication.cs
- EntityCommandDefinition.cs
- RadioButtonBaseAdapter.cs
- XmlArrayAttribute.cs
- UrlMapping.cs
- ComplusEndpointConfigContainer.cs
- SkipQueryOptionExpression.cs
- DataGridViewRowsAddedEventArgs.cs
- TimeoutHelper.cs
- InternalUserCancelledException.cs
- SynchronizationContext.cs
- ConfigurationLoader.cs
- wgx_sdk_version.cs
- WindowsRegion.cs
- SqlProviderManifest.cs
- WriterOutput.cs
- Latin1Encoding.cs
- XdrBuilder.cs
- RuleDefinitions.cs
- CheckBoxField.cs
- TimelineClockCollection.cs
- FacetEnabledSchemaElement.cs
- HitTestWithPointDrawingContextWalker.cs
- LoadWorkflowCommand.cs
- SafeFreeMibTable.cs
- XsltArgumentList.cs
- initElementDictionary.cs
- XamlContextStack.cs
- SessionPageStatePersister.cs
- QueryContinueDragEvent.cs
- FontStyle.cs
- ParamArrayAttribute.cs
- ItemsPresenter.cs
- InputScope.cs
- counter.cs
- TextServicesManager.cs
- TypeLibConverter.cs
- ArgumentValueSerializer.cs
- TabletDeviceInfo.cs
- MdImport.cs
- AutomationPeer.cs
- OSFeature.cs
- XmlLanguage.cs
- Int16AnimationBase.cs
- RequestStatusBarUpdateEventArgs.cs
- InkCanvasInnerCanvas.cs
- ProfileProvider.cs
- XmlWellformedWriter.cs
- Win32KeyboardDevice.cs
- MatrixKeyFrameCollection.cs
- Facet.cs
- RestHandlerFactory.cs
- LabelLiteral.cs
- DataControlButton.cs
- LineUtil.cs
- ControlDesignerState.cs
- ScriptRegistrationManager.cs
- TransactionManager.cs
- SynchronizationContext.cs
- SamlAuthorizationDecisionClaimResource.cs
- NavigationService.cs
- KeyBinding.cs
- XmlSchemaAnnotation.cs
- DataGridViewCellLinkedList.cs
- SrgsRulesCollection.cs
- VersionedStream.cs
- Currency.cs
- UserControlParser.cs
- DataObjectFieldAttribute.cs
- QuaternionKeyFrameCollection.cs
- FrameworkContextData.cs
- TextRunCache.cs
- ComponentConverter.cs
- PointKeyFrameCollection.cs
- ToolStripItemRenderEventArgs.cs
- DataBinder.cs
- XmlSubtreeReader.cs
- LocatorPart.cs
- QueryContinueDragEventArgs.cs
- SqlDataSourceFilteringEventArgs.cs
- SoapExtensionTypeElement.cs
- HijriCalendar.cs
- WorkflowInspectionServices.cs
- DetailsViewPagerRow.cs
- Function.cs
- FormsAuthenticationUser.cs
- EdmToObjectNamespaceMap.cs
- TableNameAttribute.cs
- AgileSafeNativeMemoryHandle.cs
- CorruptingExceptionCommon.cs
- EmptyControlCollection.cs
- SmtpDigestAuthenticationModule.cs