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
- Maps.cs
- KeyGestureValueSerializer.cs
- GenerateScriptTypeAttribute.cs
- InfoCardArgumentException.cs
- OdbcDataReader.cs
- TogglePatternIdentifiers.cs
- wmiutil.cs
- ChineseLunisolarCalendar.cs
- EmptyReadOnlyDictionaryInternal.cs
- RecognizerStateChangedEventArgs.cs
- SystemNetHelpers.cs
- ContractMapping.cs
- ProfileInfo.cs
- XamlDesignerSerializationManager.cs
- BulletChrome.cs
- ClientSession.cs
- ReflectionHelper.cs
- WebEventTraceProvider.cs
- EastAsianLunisolarCalendar.cs
- DataGridColumnEventArgs.cs
- AddInPipelineAttributes.cs
- EnglishPluralizationService.cs
- arabicshape.cs
- BitmapPalettes.cs
- BaseCAMarshaler.cs
- DataServiceRequest.cs
- NumericExpr.cs
- SessionPageStatePersister.cs
- BCryptSafeHandles.cs
- ElementNotEnabledException.cs
- ZoneLinkButton.cs
- CalendarButton.cs
- BevelBitmapEffect.cs
- DependencyObject.cs
- PageThemeCodeDomTreeGenerator.cs
- SchemaImporter.cs
- HtmlTextArea.cs
- Floater.cs
- ObjectCache.cs
- IPipelineRuntime.cs
- CqlWriter.cs
- StyleTypedPropertyAttribute.cs
- WorkflowExecutor.cs
- XsltOutput.cs
- IntSecurity.cs
- PrivilegeNotHeldException.cs
- StatusBarPanel.cs
- StyleSheetRefUrlEditor.cs
- Visitors.cs
- UpdatePanelTrigger.cs
- BitSet.cs
- SQLByteStorage.cs
- Sql8ExpressionRewriter.cs
- KeyboardDevice.cs
- AlignmentXValidation.cs
- MaterializeFromAtom.cs
- X509CertificateClaimSet.cs
- DesignerForm.cs
- SrgsGrammarCompiler.cs
- XamlReader.cs
- SelectionRange.cs
- SingleTagSectionHandler.cs
- QueryOutputWriter.cs
- WindowsFormsHost.cs
- MessageQueuePermissionEntryCollection.cs
- ClickablePoint.cs
- DetailsViewActionList.cs
- TextSerializer.cs
- ProfileManager.cs
- FlowDocumentPageViewerAutomationPeer.cs
- OutputCacheProfileCollection.cs
- PtsCache.cs
- PasswordPropertyTextAttribute.cs
- MsmqReceiveParameters.cs
- ModelPerspective.cs
- ProxyGenerationError.cs
- CodeExpressionRuleDeclaration.cs
- TraceInternal.cs
- XmlnsDictionary.cs
- SecurityContextSecurityToken.cs
- BrushMappingModeValidation.cs
- WebPartRestoreVerb.cs
- CatalogPartChrome.cs
- ScrollEvent.cs
- _DomainName.cs
- DataTrigger.cs
- Menu.cs
- BrushMappingModeValidation.cs
- _SSPISessionCache.cs
- StorageModelBuildProvider.cs
- diagnosticsswitches.cs
- NaturalLanguageHyphenator.cs
- ImplicitInputBrush.cs
- OptimalTextSource.cs
- Exceptions.cs
- RenderOptions.cs
- ListenerElementsCollection.cs
- BoundingRectTracker.cs
- ImmutableCommunicationTimeouts.cs
- PropertyMappingExceptionEventArgs.cs