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
- SiteMapNodeItem.cs
- IntegerValidatorAttribute.cs
- StyleXamlParser.cs
- CodePropertyReferenceExpression.cs
- AutoCompleteStringCollection.cs
- DataKey.cs
- CurrentTimeZone.cs
- RoleManagerSection.cs
- NumberFormatInfo.cs
- updateconfighost.cs
- NameValueFileSectionHandler.cs
- DiagnosticsConfigurationHandler.cs
- DecimalMinMaxAggregationOperator.cs
- LogReservationCollection.cs
- EntityDataSourceConfigureObjectContext.cs
- DuplicateMessageDetector.cs
- HGlobalSafeHandle.cs
- BinaryObjectInfo.cs
- WindowPattern.cs
- ObservableCollection.cs
- KeyValuePair.cs
- WorkflowControlEndpoint.cs
- CaretElement.cs
- ParallelTimeline.cs
- JsonQueryStringConverter.cs
- EncryptedPackage.cs
- Knowncolors.cs
- arc.cs
- OracleConnectionFactory.cs
- ColorIndependentAnimationStorage.cs
- CompressEmulationStream.cs
- SkinBuilder.cs
- SettingsContext.cs
- NameValueConfigurationCollection.cs
- Rijndael.cs
- FrameworkReadOnlyPropertyMetadata.cs
- SrgsOneOf.cs
- LoginView.cs
- PresentationTraceSources.cs
- ObjectStateFormatter.cs
- MemberBinding.cs
- ResumeStoryboard.cs
- StrongNameMembershipCondition.cs
- MetadataItem.cs
- FontSizeConverter.cs
- NativeStructs.cs
- TextOutput.cs
- DataSourceControlBuilder.cs
- dataprotectionpermissionattribute.cs
- BoolExpressionVisitors.cs
- __Filters.cs
- FieldNameLookup.cs
- ProtocolReflector.cs
- RotateTransform3D.cs
- ExecutedRoutedEventArgs.cs
- SQLSingle.cs
- DetailsViewInsertEventArgs.cs
- MemberJoinTreeNode.cs
- ControlParameter.cs
- DataRelation.cs
- SoapExtensionStream.cs
- XmlSchemaSimpleTypeRestriction.cs
- ValueQuery.cs
- CloudCollection.cs
- FloaterParaClient.cs
- ToolStripPanelRenderEventArgs.cs
- HScrollBar.cs
- InlineObject.cs
- FixedSOMLineRanges.cs
- basecomparevalidator.cs
- SqlCachedBuffer.cs
- ChildrenQuery.cs
- ControlPaint.cs
- Configuration.cs
- ContentPlaceHolder.cs
- ProcessProtocolHandler.cs
- HttpCacheVary.cs
- InfoCardTrace.cs
- ReadOnlyNameValueCollection.cs
- LogWriteRestartAreaState.cs
- XmlILAnnotation.cs
- MultilineStringConverter.cs
- ArrayTypeMismatchException.cs
- GreenMethods.cs
- DataRecordInternal.cs
- Viewport3DAutomationPeer.cs
- keycontainerpermission.cs
- ICollection.cs
- CredentialCache.cs
- XmlSchemaSimpleTypeUnion.cs
- Resources.Designer.cs
- ErrorTableItemStyle.cs
- WebServiceHost.cs
- CacheOutputQuery.cs
- Interlocked.cs
- ExpressionDumper.cs
- ProjectionPruner.cs
- DragDeltaEventArgs.cs
- SyndicationDeserializer.cs
- DataColumnChangeEvent.cs