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
- FixedPageAutomationPeer.cs
- EditingCommands.cs
- StatusBarDesigner.cs
- DataStorage.cs
- SiteMapSection.cs
- ToggleButtonAutomationPeer.cs
- dataobject.cs
- ManifestResourceInfo.cs
- DbConnectionPoolCounters.cs
- SpAudioStreamWrapper.cs
- TTSVoice.cs
- input.cs
- InternalPermissions.cs
- DataGridViewRowsRemovedEventArgs.cs
- TimeSpanConverter.cs
- SapiAttributeParser.cs
- DataGridPagerStyle.cs
- OverrideMode.cs
- SweepDirectionValidation.cs
- PasswordTextContainer.cs
- XmlnsPrefixAttribute.cs
- HttpProfileGroupBase.cs
- CodeNamespaceImport.cs
- IsolatedStorageException.cs
- TypeLibConverter.cs
- Message.cs
- FilePrompt.cs
- RunInstallerAttribute.cs
- SelectionRange.cs
- GridViewDeleteEventArgs.cs
- FormsAuthenticationCredentials.cs
- linebase.cs
- MembershipValidatePasswordEventArgs.cs
- TextTreeFixupNode.cs
- ListViewGroupItemCollection.cs
- RuntimeArgumentHandle.cs
- ObjectDesignerDataSourceView.cs
- DocumentApplicationJournalEntry.cs
- BamlBinaryReader.cs
- HandlerMappingMemo.cs
- SqlConnectionString.cs
- SpellerInterop.cs
- DecoderExceptionFallback.cs
- AppDomainAttributes.cs
- GeneralTransform3DGroup.cs
- DocumentGridContextMenu.cs
- ArglessEventHandlerProxy.cs
- ObjectItemLoadingSessionData.cs
- FontCacheUtil.cs
- ListViewGroupConverter.cs
- CalendarDay.cs
- CompilerLocalReference.cs
- XmlSchemaDatatype.cs
- ByeOperationCD1AsyncResult.cs
- HashCodeCombiner.cs
- WebPartAuthorizationEventArgs.cs
- SamlAuthorizationDecisionClaimResource.cs
- TraceLog.cs
- shaperfactoryquerycachekey.cs
- SqlBulkCopy.cs
- SupportsEventValidationAttribute.cs
- PermissionSetEnumerator.cs
- ForeignKeyConstraint.cs
- DoubleLinkListEnumerator.cs
- PeerOutputChannel.cs
- RequestTimeoutManager.cs
- CurrentTimeZone.cs
- IRCollection.cs
- TransformerConfigurationWizardBase.cs
- ServiceInfo.cs
- CheckBoxStandardAdapter.cs
- SynchronizedInputPattern.cs
- RawAppCommandInputReport.cs
- DetailsViewUpdateEventArgs.cs
- StickyNote.cs
- FunctionDefinition.cs
- SoapInteropTypes.cs
- SchemaSetCompiler.cs
- CodeTypeParameterCollection.cs
- StringExpressionSet.cs
- GridViewCellAutomationPeer.cs
- JsonObjectDataContract.cs
- Random.cs
- CurrentChangingEventArgs.cs
- ExtenderHelpers.cs
- AnonymousIdentificationModule.cs
- SystemWebCachingSectionGroup.cs
- TimerEventSubscriptionCollection.cs
- FrameworkReadOnlyPropertyMetadata.cs
- XslUrlEditor.cs
- HwndMouseInputProvider.cs
- RemoteDebugger.cs
- BrowserDefinitionCollection.cs
- RadioButtonList.cs
- FontConverter.cs
- RelationshipEndCollection.cs
- BehaviorService.cs
- TextEditorThreadLocalStore.cs
- FilterEventArgs.cs
- QueryCursorEventArgs.cs