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
- DataGridViewTextBoxEditingControl.cs
- TextBoxAutomationPeer.cs
- ExceptionHandlersDesigner.cs
- AssemblyUtil.cs
- Rotation3DAnimationBase.cs
- DataGridHeaderBorder.cs
- DocumentPageViewAutomationPeer.cs
- PathFigureCollectionConverter.cs
- ThreadPool.cs
- KeyboardNavigation.cs
- NGCPageContentCollectionSerializerAsync.cs
- UncommonField.cs
- XhtmlBasicSelectionListAdapter.cs
- TextContainerChangeEventArgs.cs
- UrlMappingsSection.cs
- TemplatedEditableDesignerRegion.cs
- DesignRelation.cs
- ConnectionPoolManager.cs
- VectorCollectionConverter.cs
- WebInvokeAttribute.cs
- Ref.cs
- HttpModuleAction.cs
- HttpHandlersSection.cs
- StringValidator.cs
- ParenthesizePropertyNameAttribute.cs
- BookmarkInfo.cs
- SingleAnimationUsingKeyFrames.cs
- TdsEnums.cs
- ImageCodecInfo.cs
- precedingquery.cs
- HtmlInputFile.cs
- ChildTable.cs
- Fonts.cs
- DbParameterHelper.cs
- CreationContext.cs
- Parameter.cs
- SingleObjectCollection.cs
- ECDiffieHellmanCngPublicKey.cs
- HttpContextServiceHost.cs
- NullableLongAverageAggregationOperator.cs
- SspiWrapper.cs
- Stylus.cs
- StrokeCollectionDefaultValueFactory.cs
- SecurityPolicySection.cs
- TrackBarRenderer.cs
- WebServiceHandlerFactory.cs
- MessageQueuePermissionAttribute.cs
- CodeTypeDeclarationCollection.cs
- DataIdProcessor.cs
- FixedTextBuilder.cs
- ProviderSettingsCollection.cs
- WhitespaceRuleReader.cs
- OrderedDictionary.cs
- TCEAdapterGenerator.cs
- MasterPageParser.cs
- DesignerForm.cs
- SerializerProvider.cs
- HtmlToClrEventProxy.cs
- EncodingTable.cs
- ObjectTag.cs
- SecurityAlgorithmSuite.cs
- CompiledXpathExpr.cs
- DataSet.cs
- MimeBasePart.cs
- TraversalRequest.cs
- TraceLevelStore.cs
- ArraySortHelper.cs
- TraceContextEventArgs.cs
- QilScopedVisitor.cs
- GeometryConverter.cs
- MSHTMLHost.cs
- SqlServices.cs
- WebServiceTypeData.cs
- MetadataProperty.cs
- QilTypeChecker.cs
- QueryableDataSource.cs
- JapaneseCalendar.cs
- counter.cs
- GradientBrush.cs
- Atom10FormatterFactory.cs
- TransformGroup.cs
- LazyTextWriterCreator.cs
- ManagedWndProcTracker.cs
- CodeEntryPointMethod.cs
- CodeNamespaceCollection.cs
- ListViewInsertionMark.cs
- MarshalDirectiveException.cs
- SelectionRange.cs
- infer.cs
- UnsafeNativeMethods.cs
- EventProviderTraceListener.cs
- SspiSecurityTokenProvider.cs
- CodeDOMUtility.cs
- MultipleCopiesCollection.cs
- ArrayList.cs
- DbConnectionClosed.cs
- PieceDirectory.cs
- ZipIOModeEnforcingStream.cs
- ProfilePropertyMetadata.cs
- XmlSchemaComplexType.cs