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
- InputQueue.cs
- TargetException.cs
- PauseStoryboard.cs
- DbUpdateCommandTree.cs
- ByteFacetDescriptionElement.cs
- ListDictionaryInternal.cs
- RegexCode.cs
- ListCollectionView.cs
- BinaryObjectReader.cs
- IntSecurity.cs
- BitmapEncoder.cs
- ColumnWidthChangingEvent.cs
- ScriptRegistrationManager.cs
- SiteMapProvider.cs
- SqlCrossApplyToCrossJoin.cs
- Tokenizer.cs
- UInt32.cs
- HasCopySemanticsAttribute.cs
- SqlGenericUtil.cs
- SQLMoney.cs
- LoginCancelEventArgs.cs
- SystemSounds.cs
- StringToken.cs
- XmlBinaryReaderSession.cs
- ListDictionaryInternal.cs
- WSFederationHttpSecurityElement.cs
- SelectedDatesCollection.cs
- MobileListItem.cs
- RuntimeUtils.cs
- MultipleViewProviderWrapper.cs
- DataColumnMappingCollection.cs
- XsdDuration.cs
- FileDialog_Vista.cs
- Journal.cs
- RangeBase.cs
- SqlXmlStorage.cs
- FormattedText.cs
- TemplateBindingExpression.cs
- Metadata.cs
- WebControlAdapter.cs
- Decimal.cs
- BaseValidator.cs
- TextParagraph.cs
- DiscreteKeyFrames.cs
- Padding.cs
- TreeNodeClickEventArgs.cs
- FocusManager.cs
- X509Certificate2Collection.cs
- BooleanToVisibilityConverter.cs
- SafeFileMapViewHandle.cs
- XmlNodeChangedEventManager.cs
- PrePrepareMethodAttribute.cs
- ActivityPreviewDesigner.cs
- XamlPoint3DCollectionSerializer.cs
- WebHttpBinding.cs
- categoryentry.cs
- JsonWriterDelegator.cs
- PtsPage.cs
- BaseCodePageEncoding.cs
- SchemaImporterExtensionsSection.cs
- BorderGapMaskConverter.cs
- XPathDocument.cs
- ListView.cs
- InputQueue.cs
- mda.cs
- StoreItemCollection.Loader.cs
- GenericIdentity.cs
- XmlDataSource.cs
- MeasurementDCInfo.cs
- WsdlImporterElementCollection.cs
- StatusBarDesigner.cs
- Adorner.cs
- RectIndependentAnimationStorage.cs
- StorageComplexPropertyMapping.cs
- JavascriptCallbackBehaviorAttribute.cs
- validationstate.cs
- CodeTypeReferenceExpression.cs
- WindowsScrollBarBits.cs
- DesignerVerb.cs
- NGCSerializerAsync.cs
- BindUriHelper.cs
- EnumType.cs
- DescendentsWalkerBase.cs
- Int64AnimationUsingKeyFrames.cs
- EntryIndex.cs
- MergeLocalizationDirectives.cs
- InvokeDelegate.cs
- CultureInfoConverter.cs
- EditingMode.cs
- FormParameter.cs
- SByteStorage.cs
- SaveFileDialog.cs
- FilterQuery.cs
- NoPersistScope.cs
- SlotInfo.cs
- XmlSchemaGroup.cs
- MorphHelpers.cs
- LinqToSqlWrapper.cs
- DataRelation.cs
- RoleGroupCollection.cs