Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / wpf / src / 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 : ZhenbinX - 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.
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// Description: DocumentSequence's HighlightLayer for TextSelection.
//
// History:
// 07/027/2004 : ZhenbinX - 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
- SerializationException.cs
- ParagraphResult.cs
- DataSourceView.cs
- UnderstoodHeaders.cs
- TCEAdapterGenerator.cs
- StreamResourceInfo.cs
- WebPartCloseVerb.cs
- TextAdaptor.cs
- CompilerParameters.cs
- Listbox.cs
- XPathEmptyIterator.cs
- TreeViewImageIndexConverter.cs
- XmlElementList.cs
- StagingAreaInputItem.cs
- ComAwareEventInfo.cs
- figurelength.cs
- MembershipPasswordException.cs
- AxisAngleRotation3D.cs
- HashAlgorithm.cs
- RemoteWebConfigurationHostStream.cs
- PreviousTrackingServiceAttribute.cs
- Parser.cs
- InfoCardTraceRecord.cs
- DesignerProperties.cs
- ServiceThrottlingElement.cs
- DataTableTypeConverter.cs
- PocoPropertyAccessorStrategy.cs
- WorkflowMarkupSerializationProvider.cs
- ProcessProtocolHandler.cs
- FilterException.cs
- ZipIOCentralDirectoryFileHeader.cs
- Drawing.cs
- _TransmitFileOverlappedAsyncResult.cs
- PeerTransportSecuritySettings.cs
- DependentList.cs
- SpnegoTokenAuthenticator.cs
- GuidelineCollection.cs
- PostBackOptions.cs
- basevalidator.cs
- ConnectionManagementSection.cs
- BuildProviderUtils.cs
- DelegatingHeader.cs
- UserControlParser.cs
- EncoderBestFitFallback.cs
- SvcMapFileLoader.cs
- ValueType.cs
- AnimationLayer.cs
- EndpointNameMessageFilter.cs
- DeploymentSectionCache.cs
- AuthorizationSection.cs
- DbBuffer.cs
- DecoderNLS.cs
- securitycriticaldataClass.cs
- Dump.cs
- SafeHGlobalHandleCritical.cs
- GenericAuthenticationEventArgs.cs
- TextParagraphProperties.cs
- WorkflowQueueInfo.cs
- SiteMapNodeItemEventArgs.cs
- CachedCompositeFamily.cs
- OdbcConnectionHandle.cs
- RegexCaptureCollection.cs
- HandlerFactoryCache.cs
- EmptyQuery.cs
- XmlProcessingInstruction.cs
- AsyncPostBackTrigger.cs
- DoubleUtil.cs
- DesignerToolboxInfo.cs
- BitSet.cs
- List.cs
- CssTextWriter.cs
- SqlTransaction.cs
- SoapCodeExporter.cs
- XmlComment.cs
- ImageSourceConverter.cs
- RangeValidator.cs
- CRYPTPROTECT_PROMPTSTRUCT.cs
- RIPEMD160.cs
- SecurityKeyEntropyMode.cs
- assertwrapper.cs
- securestring.cs
- ColumnMapProcessor.cs
- cookiecontainer.cs
- _UriTypeConverter.cs
- TextEditorMouse.cs
- ToolBarButtonClickEvent.cs
- SmtpClient.cs
- StatusCommandUI.cs
- DockingAttribute.cs
- CellCreator.cs
- HMAC.cs
- TerminatorSinks.cs
- ParameterCollection.cs
- Debug.cs
- BigInt.cs
- GroupBox.cs
- SingleAnimationBase.cs
- HyperLink.cs
- ValidationSettings.cs
- EntityProviderServices.cs