Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- QueryPrefixOp.cs
- SqlDataSourceParameterParser.cs
- CodeGeneratorAttribute.cs
- NGCPageContentCollectionSerializerAsync.cs
- GetPageNumberCompletedEventArgs.cs
- Pkcs9Attribute.cs
- ConstructorNeedsTagAttribute.cs
- ValueOfAction.cs
- CommonGetThemePartSize.cs
- TemplateEditingService.cs
- BitmapCodecInfo.cs
- UpdateCommandGenerator.cs
- KnownTypes.cs
- TileBrush.cs
- ModelItemImpl.cs
- WebPartManager.cs
- BulletDecorator.cs
- VisualTarget.cs
- TdsRecordBufferSetter.cs
- NavigationService.cs
- MultiAsyncResult.cs
- ComponentConverter.cs
- ActiveXSite.cs
- smtpconnection.cs
- XPathSingletonIterator.cs
- DefaultValueTypeConverter.cs
- BitmapDownload.cs
- WinEventHandler.cs
- ErrorHandlingReceiver.cs
- LicenseContext.cs
- ImageListStreamer.cs
- PassportPrincipal.cs
- RightsManagementManager.cs
- CompilationSection.cs
- ReflectionHelper.cs
- ButtonRenderer.cs
- App.cs
- ProgressBar.cs
- COAUTHIDENTITY.cs
- SqlFileStream.cs
- ResXFileRef.cs
- TraceSource.cs
- TreeNodeBindingDepthConverter.cs
- ConnectionStringSettingsCollection.cs
- WebPart.cs
- PropertyValueUIItem.cs
- EDesignUtil.cs
- EnumConverter.cs
- TreeViewImageIndexConverter.cs
- XPathSelfQuery.cs
- AuthorizationRule.cs
- MatrixCamera.cs
- AnimationClock.cs
- CheckBoxList.cs
- DatePickerTextBox.cs
- StringDictionaryWithComparer.cs
- SoapFaultCodes.cs
- EntityDataSourceViewSchema.cs
- CharUnicodeInfo.cs
- Utils.cs
- CompressStream.cs
- DataTableTypeConverter.cs
- ConnectionManagementElementCollection.cs
- XmlNamespaceManager.cs
- ContentIterators.cs
- CapabilitiesPattern.cs
- MatrixCamera.cs
- SurrogateSelector.cs
- Int64Converter.cs
- Utils.cs
- BindingNavigator.cs
- SelectedDatesCollection.cs
- UserControl.cs
- DataBoundControlAdapter.cs
- NavigationCommands.cs
- BlurEffect.cs
- MatrixIndependentAnimationStorage.cs
- SmtpNetworkElement.cs
- Stack.cs
- XpsImage.cs
- DesigntimeLicenseContextSerializer.cs
- SafeNativeMethods.cs
- Int32Storage.cs
- DetailsViewAutoFormat.cs
- ByeMessage11.cs
- WriteTimeStream.cs
- UnsafeNativeMethods.cs
- MappingModelBuildProvider.cs
- Deflater.cs
- SerializationUtilities.cs
- HMACMD5.cs
- PeerInvitationResponse.cs
- EmptyStringExpandableObjectConverter.cs
- RuntimeEnvironment.cs
- XmlSchemaAttribute.cs
- TemplatePropertyEntry.cs
- DataSourceView.cs
- ArgIterator.cs
- DataGridViewRowCollection.cs
- DirectionalAction.cs