Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- ThemeDictionaryExtension.cs
- SimpleBitVector32.cs
- InputScopeManager.cs
- GridViewRowPresenterBase.cs
- SubMenuStyle.cs
- EventPrivateKey.cs
- configsystem.cs
- TreeBuilder.cs
- SplineQuaternionKeyFrame.cs
- IntSecurity.cs
- WindowsToolbar.cs
- TraceContextRecord.cs
- HwndProxyElementProvider.cs
- StickyNote.cs
- LinkedResource.cs
- XmlSchemaSimpleTypeList.cs
- PreservationFileReader.cs
- TextEffect.cs
- NetworkAddressChange.cs
- Span.cs
- BuildProviderCollection.cs
- SqlNotificationRequest.cs
- ThousandthOfEmRealDoubles.cs
- UnsafeNativeMethods.cs
- OutKeywords.cs
- ScrollBarAutomationPeer.cs
- XmlEncoding.cs
- XPathNode.cs
- SymLanguageVendor.cs
- LineInfo.cs
- NullableDecimalAverageAggregationOperator.cs
- XamlFilter.cs
- WebPartConnectVerb.cs
- Label.cs
- ParameterCollection.cs
- Module.cs
- EntitySetDataBindingList.cs
- GradientBrush.cs
- BinaryOperationBinder.cs
- EntityTypeBase.cs
- AppSettingsExpressionBuilder.cs
- ViewGenResults.cs
- TrustLevel.cs
- DataGridItemEventArgs.cs
- ExpressionVisitorHelpers.cs
- BackStopAuthenticationModule.cs
- ContractHandle.cs
- _NTAuthentication.cs
- ParagraphVisual.cs
- DrawingContextWalker.cs
- SourceSwitch.cs
- Tokenizer.cs
- DurationConverter.cs
- ExtractCollection.cs
- DoubleCollection.cs
- ServiceNameElement.cs
- NullReferenceException.cs
- SoapHttpTransportImporter.cs
- CaseStatementSlot.cs
- FilterableAttribute.cs
- ToolStripDropDownButton.cs
- DropShadowBitmapEffect.cs
- BamlTreeMap.cs
- PartialClassGenerationTask.cs
- LineBreakRecord.cs
- StoreContentChangedEventArgs.cs
- DetailsViewRow.cs
- SqlConnection.cs
- ResourcePool.cs
- ISAPIWorkerRequest.cs
- SBCSCodePageEncoding.cs
- DropSourceBehavior.cs
- TopClause.cs
- TransferRequestHandler.cs
- StrokeRenderer.cs
- RotateTransform.cs
- CodeTypeReferenceCollection.cs
- FormViewDesigner.cs
- filewebrequest.cs
- SqlStatistics.cs
- WinInetCache.cs
- ShutDownListener.cs
- DateTimeOffset.cs
- OperationInfoBase.cs
- AnnotationAdorner.cs
- CryptoStream.cs
- Double.cs
- PrintPreviewGraphics.cs
- FixedHighlight.cs
- ProvideValueServiceProvider.cs
- XmlDataSourceNodeDescriptor.cs
- ConnectionPoolManager.cs
- X509CertificateRecipientClientCredential.cs
- TreeBuilder.cs
- GeometryGroup.cs
- ExplicitDiscriminatorMap.cs
- TransformGroup.cs
- BuildResult.cs
- ControlType.cs
- XamlRtfConverter.cs