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 / 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
- ServiceConfigurationTraceRecord.cs
- QuadraticBezierSegment.cs
- CellParagraph.cs
- WindowsFormsHelpers.cs
- ObjectDataSourceStatusEventArgs.cs
- SerializationUtilities.cs
- PropertyItem.cs
- ServiceControllerDesigner.cs
- MouseEventArgs.cs
- HMACSHA384.cs
- HostVisual.cs
- RightsManagementEncryptionTransform.cs
- COM2TypeInfoProcessor.cs
- SafeCoTaskMem.cs
- TextTreeExtractElementUndoUnit.cs
- PhysicalAddress.cs
- NameValueCollection.cs
- GACMembershipCondition.cs
- ControlBuilderAttribute.cs
- UnmanagedMemoryAccessor.cs
- TdsParserSessionPool.cs
- ClientSettingsSection.cs
- ListManagerBindingsCollection.cs
- RemotingClientProxy.cs
- ToolbarAUtomationPeer.cs
- ScaleTransform.cs
- HyperLinkColumn.cs
- PageThemeParser.cs
- NativeWindow.cs
- Preprocessor.cs
- TryCatchDesigner.xaml.cs
- EntityParameter.cs
- RenderingBiasValidation.cs
- RecordManager.cs
- oledbmetadatacolumnnames.cs
- FamilyTypefaceCollection.cs
- InkPresenter.cs
- XamlTypeMapper.cs
- BindableTemplateBuilder.cs
- Zone.cs
- GenericIdentity.cs
- ContractListAdapter.cs
- SecUtil.cs
- Pair.cs
- DbBuffer.cs
- MetadataItemEmitter.cs
- Aggregates.cs
- ToolStripPanelRow.cs
- DependencyObjectPropertyDescriptor.cs
- FtpCachePolicyElement.cs
- DocumentGridPage.cs
- FontNamesConverter.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- Model3D.cs
- WeakEventManager.cs
- AlphaSortedEnumConverter.cs
- DataGridItem.cs
- _SpnDictionary.cs
- UnSafeCharBuffer.cs
- RemotingHelper.cs
- File.cs
- InvalidPropValue.cs
- ChineseLunisolarCalendar.cs
- DataObject.cs
- ListControlConvertEventArgs.cs
- Operators.cs
- DataKey.cs
- StrongNamePublicKeyBlob.cs
- ToolStrip.cs
- FusionWrap.cs
- WebPartConnectionsConnectVerb.cs
- coordinator.cs
- HttpDictionary.cs
- FormattedText.cs
- BitmapEffectDrawingContextWalker.cs
- RawKeyboardInputReport.cs
- BoolExpressionVisitors.cs
- ValidationResult.cs
- ContainerUIElement3D.cs
- ChangesetResponse.cs
- PartialCachingControl.cs
- BaseAddressPrefixFilterElement.cs
- SingleKeyFrameCollection.cs
- TcpHostedTransportConfiguration.cs
- Highlights.cs
- TripleDESCryptoServiceProvider.cs
- ComNativeDescriptor.cs
- WindowInteractionStateTracker.cs
- MultiSelectRootGridEntry.cs
- BindingObserver.cs
- SpecularMaterial.cs
- WebPartCancelEventArgs.cs
- DataGridViewCellStyleConverter.cs
- SafeSystemMetrics.cs
- DeferredSelectedIndexReference.cs
- Simplifier.cs
- TaiwanLunisolarCalendar.cs
- FileRegion.cs
- UnknownBitmapEncoder.cs
- Maps.cs