Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Documents / DocumentSequenceHighlightLayer.cs / 1 / DocumentSequenceHighlightLayer.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: DocumentSequence's HighlightLayer for TextSelection. // // History: // 07/027/2004 : [....] - Created // //--------------------------------------------------------------------------- namespace System.Windows.Documents { using MS.Internal.Documents; using System; using System.Diagnostics; using System.Collections; using System.Collections.Generic; // A special HighlightLayer that exists only to notify a FixedDocument // of changes to its highlights when the highlights are stored on a // DocumentSequenceTextContainer. // This layer is set on a FixedDocumentTextContainer that's part of a // DocumentSequence. When the DocumentSequence's highlight layer changes // it determines which sub-documents need to be notified and uses the // instance of this class for each of those documents to notify it. // The FixedDoc then uses the DocumentSequence's Highlights directly to // get the highlight information. // Note: Some of the methods below are used in constructing the event args // but others are not. This class is not intended to be used directly as an // actual highlight layer. internal class DocumentSequenceHighlightLayer : HighlightLayer { //----------------------------------------------------- // // Constructors // //----------------------------------------------------- #region Constructors internal DocumentSequenceHighlightLayer(DocumentSequenceTextContainer docSeqContainer) { _docSeqContainer = docSeqContainer; } #endregion Constructors //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- #region Internal Methods // Method is not implemented. Should not need to be called for constructing the event args. internal override object GetHighlightValue(StaticTextPointer staticTextPointer, LogicalDirection direction) { Debug.Assert(false, "This method is not implemented and not expected to be called."); return null; } // Returns whether or not this text pointer has a highlight on it. Determines this by checking // the highlights of the DocumentSequence. internal override bool IsContentHighlighted(StaticTextPointer staticTextPointer, LogicalDirection direction) { return this._docSeqContainer.Highlights.IsContentHighlighted(staticTextPointer, direction); } // Returns the next change position starting from the passed in StaticTextPointer. Determines this by checking // the highlights of the DocumentSequence. internal override StaticTextPointer GetNextChangePosition(StaticTextPointer staticTextPointer, LogicalDirection direction) { return this._docSeqContainer.Highlights.GetNextHighlightChangePosition(staticTextPointer, direction); } // Called by the DocumentSequenceTextContainer to communicate changes to its highlight layer // to the FixedDocumentTextContainer which contains this layer. internal void RaiseHighlightChangedEvent(IList ranges) { DocumentsTrace.FixedDocumentSequence.Highlights.Trace(string.Format("DSHL.RaiseHighlightChangedEvent ranges={0}", ranges.Count)); Debug.Assert(ranges.Count > 0); if (this.Changed != null) { DocumentSequenceHighlightChangedEventArgs args; args = new DocumentSequenceHighlightChangedEventArgs(ranges); this.Changed(this, args); } } #endregion Internal Methods //------------------------------------------------------ // // Internal Properties // //------------------------------------------------------ #region Internal Properties ////// Type identifying this layer for Highlights.GetHighlightValue calls. /// internal override Type OwnerType { get { return typeof(TextSelection); } } #endregion Internal Properties //----------------------------------------------------- // // Internal Events // //------------------------------------------------------ #region Internal Events // Event raised when a highlight range is inserted, removed, moved, or // has a local property value change. internal override event HighlightChangedEventHandler Changed; #endregion Internal Events //----------------------------------------------------- // // Private Fields // //----------------------------------------------------- #region Private Fields private readonly DocumentSequenceTextContainer _docSeqContainer; #endregion Private Fields //----------------------------------------------------- // // Private Classes // //------------------------------------------------------ #region Private Classes // Argument for the Changed event, encapsulates a highlight change. private class DocumentSequenceHighlightChangedEventArgs : HighlightChangedEventArgs { // Constructor. internal DocumentSequenceHighlightChangedEventArgs(IList ranges) { _ranges = ranges; } // Collection of changed content ranges. internal override IList Ranges { get { return _ranges; } } // Type identifying the owner of the changed layer. internal override Type OwnerType { get { return typeof(TextSelection); } } // Collection of changed content ranges. private readonly IList _ranges; } #endregion Private Classes } } // 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
- NativeRecognizer.cs
- XmlSchemaSubstitutionGroup.cs
- BitmapEffectGroup.cs
- RequestSecurityTokenResponseCollection.cs
- _PooledStream.cs
- QueryCacheKey.cs
- DiscoveryMessageSequenceCD1.cs
- DataFieldCollectionEditor.cs
- RenderData.cs
- IOException.cs
- DataColumnMappingCollection.cs
- TouchPoint.cs
- ProxySimple.cs
- SQLGuidStorage.cs
- RadioButton.cs
- BaseProcessor.cs
- IntellisenseTextBox.designer.cs
- AssemblyInfo.cs
- CompressionTransform.cs
- ParseNumbers.cs
- RewritingPass.cs
- SubtreeProcessor.cs
- NativeCppClassAttribute.cs
- Event.cs
- DataGridTextBoxColumn.cs
- GeneralTransformCollection.cs
- RootBrowserWindowProxy.cs
- Brushes.cs
- XmlToDatasetMap.cs
- ItemsControlAutomationPeer.cs
- ColorConvertedBitmapExtension.cs
- VirtualPath.cs
- PeerApplicationLaunchInfo.cs
- FrameworkElementFactoryMarkupObject.cs
- DataGridViewDataErrorEventArgs.cs
- StructuredTypeEmitter.cs
- SynchronizationLockException.cs
- PreviewKeyDownEventArgs.cs
- XPathNodePointer.cs
- SimpleType.cs
- StringConcat.cs
- ConfigurationElementCollection.cs
- Selection.cs
- HtmlControlDesigner.cs
- SoapElementAttribute.cs
- IInstanceTable.cs
- ApplicationSettingsBase.cs
- DiagnosticTrace.cs
- TreeViewEvent.cs
- OrderedEnumerableRowCollection.cs
- StoragePropertyMapping.cs
- WebPartZone.cs
- AnimationException.cs
- NonBatchDirectoryCompiler.cs
- FirstMatchCodeGroup.cs
- GeometryGroup.cs
- StringArrayConverter.cs
- FixedDSBuilder.cs
- RuleSetBrowserDialog.cs
- XmlMapping.cs
- CroppedBitmap.cs
- PerfCounters.cs
- CustomErrorsSection.cs
- IntSecurity.cs
- DecoderFallback.cs
- CacheAxisQuery.cs
- OleDbEnumerator.cs
- SeverityFilter.cs
- XPathDescendantIterator.cs
- ScriptingRoleServiceSection.cs
- KeyInstance.cs
- ScriptModule.cs
- MimePart.cs
- List.cs
- XmlUtilWriter.cs
- CacheMode.cs
- TimeSpanStorage.cs
- MetadataItem.cs
- ResourcesChangeInfo.cs
- TypeLibConverter.cs
- WsdlParser.cs
- recordstatescratchpad.cs
- FontDriver.cs
- ListView.cs
- UpdateExpressionVisitor.cs
- SqlCacheDependencyDatabase.cs
- wgx_render.cs
- EditableRegion.cs
- EpmTargetPathSegment.cs
- FieldBuilder.cs
- WindowsImpersonationContext.cs
- EncryptedKey.cs
- XpsInterleavingPolicy.cs
- XmlILConstructAnalyzer.cs
- ItemType.cs
- GlyphsSerializer.cs
- WindowsStartMenu.cs
- CurrencyManager.cs
- DiscoveryDefaults.cs
- FormDesigner.cs