Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / Core / CSharp / System / Windows / Media / textformatting / TextRunCache.cs / 1 / 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
- PackageFilter.cs
- WebPartDescriptionCollection.cs
- TemplateField.cs
- KeyFrames.cs
- BorderSidesEditor.cs
- ColorAnimationUsingKeyFrames.cs
- DocumentPaginator.cs
- Config.cs
- AppDomainAttributes.cs
- SQLResource.cs
- Positioning.cs
- ToolStripContentPanelDesigner.cs
- BamlLocalizationDictionary.cs
- Buffer.cs
- BuiltInPermissionSets.cs
- PromptEventArgs.cs
- UrlMappingsModule.cs
- IOException.cs
- GregorianCalendarHelper.cs
- RecommendedAsConfigurableAttribute.cs
- SvcMapFileSerializer.cs
- RepeatButton.cs
- ToolboxComponentsCreatedEventArgs.cs
- SmtpCommands.cs
- XmlILStorageConverter.cs
- EndOfStreamException.cs
- RootBrowserWindowAutomationPeer.cs
- SqlDataSourceCommandEventArgs.cs
- VScrollProperties.cs
- SourceLocationProvider.cs
- SettingsProviderCollection.cs
- _DomainName.cs
- XsltSettings.cs
- SolidColorBrush.cs
- FixedHyperLink.cs
- TemplateEditingFrame.cs
- TabItemAutomationPeer.cs
- QuadTree.cs
- XmlnsDictionary.cs
- TemplateBamlTreeBuilder.cs
- ThemeDirectoryCompiler.cs
- StringUtil.cs
- ObjectParameterCollection.cs
- PropertyRef.cs
- DetailsViewDeleteEventArgs.cs
- StorageMappingFragment.cs
- OpenTypeCommon.cs
- LeafCellTreeNode.cs
- ForceCopyBuildProvider.cs
- StatusBarAutomationPeer.cs
- VideoDrawing.cs
- CodeDOMUtility.cs
- SvcMapFile.cs
- ToolboxService.cs
- Camera.cs
- Literal.cs
- ILGenerator.cs
- RSAPKCS1SignatureDeformatter.cs
- CriticalFinalizerObject.cs
- Variant.cs
- TypeExtensionConverter.cs
- Int32AnimationBase.cs
- DayRenderEvent.cs
- ColumnMapProcessor.cs
- SeekStoryboard.cs
- CodeGenerator.cs
- CompiledQuery.cs
- BitmapEffectState.cs
- XmlElementList.cs
- EventMappingSettings.cs
- OdbcConnectionHandle.cs
- TabletDeviceInfo.cs
- AbsoluteQuery.cs
- FtpRequestCacheValidator.cs
- SafeEventLogWriteHandle.cs
- MgmtResManager.cs
- XamlStackWriter.cs
- SettingsPropertyValue.cs
- StringBlob.cs
- EnumMemberAttribute.cs
- FlowNode.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- UpdatePanelControlTrigger.cs
- InkCanvasInnerCanvas.cs
- RelAssertionDirectKeyIdentifierClause.cs
- HtmlInputControl.cs
- QualifiedId.cs
- HtmlWindow.cs
- WebPartTransformerAttribute.cs
- TimerEventSubscriptionCollection.cs
- RenderData.cs
- ManipulationLogic.cs
- TitleStyle.cs
- LightweightEntityWrapper.cs
- WebCategoryAttribute.cs
- HttpListenerPrefixCollection.cs
- UnknownBitmapDecoder.cs
- DoubleLinkListEnumerator.cs
- MenuBindingsEditorForm.cs
- PerfProviderCollection.cs