Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / textformatting / TextRunCache.cs / 1305600 / TextRunCache.cs
//------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation, 2001 // // File: TextRunCache.cs // // Contents: Cache of text and text properties of run // // Spec: http://team/sites/Avalon/Specs/Text%20Formatting%20API.doc // // Created: 2-25-2003 Worachai Chaoweeraprasit (wchao) // //----------------------------------------------------------------------- using System; using System.Collections.Generic; using MS.Internal.PresentationCore; using MS.Internal.TextFormatting; namespace System.Windows.Media.TextFormatting { ////// TextFormatter caches runs it receives from GetTextRun callback. This cache /// object is managed by text layout client. /// /// This method is used to improve performance in application whose fetching the /// run has significant performance implication. Application using this caching /// mechanism is responsible for invalidating the content in the cache when /// its changed. /// public sealed class TextRunCache { ////// Constructing text run cache /// public TextRunCache() {} ////// Client to notify change in part of the cache when text or /// properties of the run is being added, removed or replaced. /// /// text source character index to specify where in the source text the change starts. /// the number of text source characters to be added in the source text /// the number of text source characters to be removed in the source text public void Change( int textSourceCharacterIndex, int addition, int removal ) { if(_imp != null) { _imp.Change( textSourceCharacterIndex, addition, removal ); } } ////// Client to invalidate the whole cache, in effect emptying the cache and /// cause the cache refill in subsequent call to Text Formatting API. /// public void Invalidate() { if(_imp != null) { _imp = null; } } ////// Return all cached TextRun in a TextSpan list. If TextRun is not cached for a particular character range, /// the TextSpan would contain null TextRun object. /// #if OPTIMALBREAK_API public IList> GetTextRunSpans() #else [FriendAccessAllowed] internal IList > GetTextRunSpans() #endif { if (_imp != null) { return _imp.GetTextRunSpans(); } // otherwise, return an empty collection return new TextSpan [0]; } /// /// Get/set the actual cache instance /// internal TextRunCacheImp Imp { get { return _imp; } set { _imp = value; } } private TextRunCacheImp _imp; } } // 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: TextRunCache.cs // // Contents: Cache of text and text properties of run // // Spec: http://team/sites/Avalon/Specs/Text%20Formatting%20API.doc // // Created: 2-25-2003 Worachai Chaoweeraprasit (wchao) // //----------------------------------------------------------------------- using System; using System.Collections.Generic; using MS.Internal.PresentationCore; using MS.Internal.TextFormatting; namespace System.Windows.Media.TextFormatting { ////// TextFormatter caches runs it receives from GetTextRun callback. This cache /// object is managed by text layout client. /// /// This method is used to improve performance in application whose fetching the /// run has significant performance implication. Application using this caching /// mechanism is responsible for invalidating the content in the cache when /// its changed. /// public sealed class TextRunCache { ////// Constructing text run cache /// public TextRunCache() {} ////// Client to notify change in part of the cache when text or /// properties of the run is being added, removed or replaced. /// /// text source character index to specify where in the source text the change starts. /// the number of text source characters to be added in the source text /// the number of text source characters to be removed in the source text public void Change( int textSourceCharacterIndex, int addition, int removal ) { if(_imp != null) { _imp.Change( textSourceCharacterIndex, addition, removal ); } } ////// Client to invalidate the whole cache, in effect emptying the cache and /// cause the cache refill in subsequent call to Text Formatting API. /// public void Invalidate() { if(_imp != null) { _imp = null; } } ////// Return all cached TextRun in a TextSpan list. If TextRun is not cached for a particular character range, /// the TextSpan would contain null TextRun object. /// #if OPTIMALBREAK_API public IList> GetTextRunSpans() #else [FriendAccessAllowed] internal IList > GetTextRunSpans() #endif { if (_imp != null) { return _imp.GetTextRunSpans(); } // otherwise, return an empty collection return new TextSpan [0]; } /// /// Get/set the actual cache instance /// internal TextRunCacheImp Imp { get { return _imp; } set { _imp = value; } } private TextRunCacheImp _imp; } } // 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
- ChannelCredentials.cs
- SqlUdtInfo.cs
- ColumnResizeUndoUnit.cs
- XmlSerializerAssemblyAttribute.cs
- ClientRuntimeConfig.cs
- AssemblyInfo.cs
- SingleObjectCollection.cs
- DbParameterCollectionHelper.cs
- Message.cs
- UnsafeNativeMethodsCLR.cs
- PopupRoot.cs
- SystemInfo.cs
- Sorting.cs
- DataConnectionHelper.cs
- SmtpAuthenticationManager.cs
- HttpContextServiceHost.cs
- DataGridTextBoxColumn.cs
- TemplatePropertyEntry.cs
- TokenBasedSetEnumerator.cs
- Label.cs
- ColumnResult.cs
- DelegateHelpers.cs
- Util.cs
- SqlTypesSchemaImporter.cs
- CollectionViewGroupInternal.cs
- HttpModulesSection.cs
- CodeObject.cs
- TextRangeBase.cs
- Assign.cs
- _LocalDataStoreMgr.cs
- Repeater.cs
- SimpleApplicationHost.cs
- ProcessHostConfigUtils.cs
- FileRegion.cs
- FileSystemEventArgs.cs
- DispatcherObject.cs
- CapabilitiesUse.cs
- ExpressionHelper.cs
- ListDictionary.cs
- OperatingSystem.cs
- XmlNotation.cs
- TextSpan.cs
- RelationshipEnd.cs
- InputLanguageCollection.cs
- GrowingArray.cs
- BinaryConverter.cs
- HttpRequest.cs
- ConfigXmlAttribute.cs
- WebScriptEnablingBehavior.cs
- TextServicesProperty.cs
- CodeEventReferenceExpression.cs
- Int32Converter.cs
- Timeline.cs
- RawStylusSystemGestureInputReport.cs
- BaseValidator.cs
- Environment.cs
- SqlDataSourceEnumerator.cs
- GetWorkflowTree.cs
- HtmlInputPassword.cs
- ConfigurationLocation.cs
- DataTransferEventArgs.cs
- InheritedPropertyChangedEventArgs.cs
- PreProcessor.cs
- VirtualPathUtility.cs
- SafeTimerHandle.cs
- ToolCreatedEventArgs.cs
- FilterFactory.cs
- RsaSecurityToken.cs
- ServiceCredentialsElement.cs
- DataGridViewAdvancedBorderStyle.cs
- ByteKeyFrameCollection.cs
- DebugView.cs
- Label.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- DesignerListAdapter.cs
- Atom10FormatterFactory.cs
- Identifier.cs
- XamlReaderConstants.cs
- EntityCommandCompilationException.cs
- FloaterBaseParaClient.cs
- DataGridViewRowStateChangedEventArgs.cs
- ImageField.cs
- PropertyRecord.cs
- SystemMulticastIPAddressInformation.cs
- SoapUnknownHeader.cs
- Add.cs
- CleanUpVirtualizedItemEventArgs.cs
- LinqDataSourceValidationException.cs
- X509Chain.cs
- InstanceOwnerQueryResult.cs
- FactoryId.cs
- XmlCharCheckingReader.cs
- WindowsStatic.cs
- XmlStreamStore.cs
- ComContractElementCollection.cs
- VectorConverter.cs
- DataGridTablesFactory.cs
- CreateCardRequest.cs
- MediaTimeline.cs
- IMembershipProvider.cs