Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / textformatting / TextModifierScope.cs / 1305600 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HtmlGenericControl.cs
- DataGridViewRowCollection.cs
- DrawingContextDrawingContextWalker.cs
- Tablet.cs
- VectorKeyFrameCollection.cs
- SamlSubjectStatement.cs
- SessionStateItemCollection.cs
- GridItem.cs
- Set.cs
- MarkupProperty.cs
- XamlInterfaces.cs
- SystemColorTracker.cs
- CompatibleComparer.cs
- ApplicationSecurityManager.cs
- CodeCastExpression.cs
- RectangleConverter.cs
- PrintDocument.cs
- CallbackTimeoutsBehavior.cs
- SetStateDesigner.cs
- BitmapEffect.cs
- Base64Decoder.cs
- ConstrainedGroup.cs
- RequestCachingSection.cs
- RTTrackingProfile.cs
- HeaderedItemsControl.cs
- Odbc32.cs
- DataGridViewCellStyle.cs
- NameValuePair.cs
- TextSimpleMarkerProperties.cs
- ButtonColumn.cs
- IfAction.cs
- FlowPanelDesigner.cs
- ScriptReferenceEventArgs.cs
- TableItemStyle.cs
- InvariantComparer.cs
- ProfessionalColors.cs
- ValidationResults.cs
- DesignerSerializationOptionsAttribute.cs
- SecurityUtils.cs
- CmsInterop.cs
- NodeInfo.cs
- IsolatedStorageException.cs
- IndexedString.cs
- ControlAdapter.cs
- StreamResourceInfo.cs
- ISCIIEncoding.cs
- PageWrapper.cs
- ReflectionUtil.cs
- FixedSOMTable.cs
- ChangePassword.cs
- ProviderSettings.cs
- XmlSchemaImport.cs
- DBCommand.cs
- RangeBaseAutomationPeer.cs
- StandardBindingCollectionElement.cs
- CompositionCommandSet.cs
- Parameter.cs
- RC2CryptoServiceProvider.cs
- XsltException.cs
- SiteIdentityPermission.cs
- SendActivity.cs
- BitmapEffectInputConnector.cs
- sitestring.cs
- XmlSerializerVersionAttribute.cs
- ZoneLinkButton.cs
- MembershipSection.cs
- WebPartUtil.cs
- XmlHelper.cs
- OdbcStatementHandle.cs
- VarRemapper.cs
- InkCanvasInnerCanvas.cs
- ParallelTimeline.cs
- ListControlConvertEventArgs.cs
- ScriptHandlerFactory.cs
- ToolStripOverflow.cs
- TypedTableHandler.cs
- UdpSocket.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- CustomErrorCollection.cs
- BamlBinaryWriter.cs
- TaskExceptionHolder.cs
- ZipIORawDataFileBlock.cs
- PathFigureCollectionConverter.cs
- NegationPusher.cs
- SessionState.cs
- FtpRequestCacheValidator.cs
- TextProviderWrapper.cs
- Imaging.cs
- TemplateControlParser.cs
- ObjectTokenCategory.cs
- DataGridViewColumnEventArgs.cs
- TdsParserHelperClasses.cs
- securitymgrsite.cs
- UnauthorizedWebPart.cs
- Error.cs
- XmlSchemaAnnotation.cs
- StrokeNodeOperations.cs
- __TransparentProxy.cs
- Vector3DKeyFrameCollection.cs
- UnsafeNativeMethodsCLR.cs