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
- WebMessageEncodingBindingElement.cs
- ReaderContextStackData.cs
- SchemaManager.cs
- WebPartConnectionsCloseVerb.cs
- NamedPipeHostedTransportConfiguration.cs
- AccessKeyManager.cs
- AssemblyName.cs
- EdmSchemaAttribute.cs
- FamilyTypeface.cs
- EventMappingSettings.cs
- ScriptingRoleServiceSection.cs
- InputScopeManager.cs
- ReaderWriterLock.cs
- GridViewRowCollection.cs
- ToolStripRendererSwitcher.cs
- CodeAccessPermission.cs
- GPRECT.cs
- ClickablePoint.cs
- QilStrConcatenator.cs
- Marshal.cs
- FixedSOMFixedBlock.cs
- SQLInt16.cs
- ExtensionQuery.cs
- RootAction.cs
- KeyPullup.cs
- SQLInt16Storage.cs
- WsdlInspector.cs
- NotifyInputEventArgs.cs
- AdapterUtil.cs
- DesignTimeParseData.cs
- DataControlButton.cs
- QilNode.cs
- ILGenerator.cs
- ProvidersHelper.cs
- OrderedHashRepartitionEnumerator.cs
- DispatcherTimer.cs
- ErrorTableItemStyle.cs
- XamlTypeMapperSchemaContext.cs
- PassportAuthenticationEventArgs.cs
- grammarelement.cs
- DataPagerFieldItem.cs
- BmpBitmapDecoder.cs
- ProfileInfo.cs
- ToolStripLabel.cs
- SqlBinder.cs
- SoapDocumentMethodAttribute.cs
- AnimationStorage.cs
- DateTimeConverter.cs
- TextRangeProviderWrapper.cs
- WindowsProgressbar.cs
- BindingNavigatorDesigner.cs
- ObservableDictionary.cs
- CompositeControlDesigner.cs
- Component.cs
- ListBindableAttribute.cs
- _Win32.cs
- ContractAdapter.cs
- RangeValuePattern.cs
- OutOfProcStateClientManager.cs
- MethodExpr.cs
- TargetInvocationException.cs
- OleDbErrorCollection.cs
- FixedHyperLink.cs
- GlyphRun.cs
- InlineUIContainer.cs
- InteropAutomationProvider.cs
- ScrollEventArgs.cs
- VarInfo.cs
- PriorityQueue.cs
- ServiceDescriptionContext.cs
- ISCIIEncoding.cs
- Win32SafeHandles.cs
- safex509handles.cs
- ObjectConverter.cs
- TableCell.cs
- AdornerDecorator.cs
- JsonByteArrayDataContract.cs
- AuthenticationModulesSection.cs
- formatter.cs
- URL.cs
- HyperLinkDesigner.cs
- AnchoredBlock.cs
- DataTemplate.cs
- VarInfo.cs
- WS2007HttpBinding.cs
- XPathNodeList.cs
- KeyMatchBuilder.cs
- ProxyManager.cs
- InfoCardTrace.cs
- UrlAuthFailedErrorFormatter.cs
- SharedPersonalizationStateInfo.cs
- Point.cs
- HasRunnableWorkflowEvent.cs
- mongolianshape.cs
- GeometryConverter.cs
- NoneExcludedImageIndexConverter.cs
- StandardCommands.cs
- CellTreeNodeVisitors.cs
- HMAC.cs
- IsolatedStorage.cs