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
- LocalTransaction.cs
- Renderer.cs
- InputReportEventArgs.cs
- ProcessInputEventArgs.cs
- StorageInfo.cs
- DateTimePicker.cs
- PreloadedPackages.cs
- CurrentChangingEventManager.cs
- ObservableCollection.cs
- SiteMapNodeCollection.cs
- Pair.cs
- XmlSchemaComplexType.cs
- TokenBasedSet.cs
- BaseProcessor.cs
- TextDecorationLocationValidation.cs
- DictionaryItemsCollection.cs
- GAC.cs
- DetailsViewInsertedEventArgs.cs
- CreatingCookieEventArgs.cs
- FileSystemEnumerable.cs
- TargetPerspective.cs
- WsrmMessageInfo.cs
- QilReplaceVisitor.cs
- SynchronizedDispatch.cs
- newinstructionaction.cs
- HttpWriter.cs
- DateTime.cs
- CheckableControlBaseAdapter.cs
- UIElement.cs
- DataObjectSettingDataEventArgs.cs
- FunctionUpdateCommand.cs
- ContentValidator.cs
- bidPrivateBase.cs
- CompressionTransform.cs
- FileDialog_Vista_Interop.cs
- CodeMemberMethod.cs
- QilUnary.cs
- CodeGenerator.cs
- mediaeventshelper.cs
- recordstatescratchpad.cs
- TextDecorations.cs
- FixedSOMFixedBlock.cs
- ExpressionPrinter.cs
- Bitmap.cs
- BitmapEffectDrawingContextState.cs
- XmlConvert.cs
- PeerNameRegistration.cs
- IteratorFilter.cs
- CodePrimitiveExpression.cs
- LocalizationComments.cs
- Function.cs
- SchemaElementLookUpTable.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- ResizeBehavior.cs
- Hash.cs
- FakeModelItemImpl.cs
- HttpCacheParams.cs
- CollectionCodeDomSerializer.cs
- AsyncOperationContext.cs
- MouseCaptureWithinProperty.cs
- UnmanagedMarshal.cs
- ClassValidator.cs
- QuaternionIndependentAnimationStorage.cs
- PointAnimationBase.cs
- HandlerFactoryCache.cs
- sqlmetadatafactory.cs
- DesignerVerb.cs
- DoubleIndependentAnimationStorage.cs
- infer.cs
- RouteItem.cs
- EnumerableWrapperWeakToStrong.cs
- TTSEngineProxy.cs
- CellParagraph.cs
- DataGridPagerStyle.cs
- ImageFormat.cs
- AggregateNode.cs
- ResourceReferenceKeyNotFoundException.cs
- TextEditorCopyPaste.cs
- ComplexTypeEmitter.cs
- FieldNameLookup.cs
- IListConverters.cs
- ThicknessAnimationBase.cs
- GlyphRunDrawing.cs
- AlgoModule.cs
- SerializableAttribute.cs
- XmlSchemaIdentityConstraint.cs
- SafeNativeMethodsMilCoreApi.cs
- BindingExpressionUncommonField.cs
- DataRecordInternal.cs
- ImageDrawing.cs
- DummyDataSource.cs
- MessageDecoder.cs
- EndpointInstanceProvider.cs
- SemaphoreFullException.cs
- DBSchemaTable.cs
- VoiceChangeEventArgs.cs
- SetterTriggerConditionValueConverter.cs
- SponsorHelper.cs
- SupportingTokenSpecification.cs
- CodeCommentStatement.cs