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
- XmlAnyAttributeAttribute.cs
- ValidationError.cs
- DateTimeSerializationSection.cs
- AnimationStorage.cs
- DurableInstancingOptions.cs
- ConversionHelper.cs
- WindowsAuthenticationEventArgs.cs
- OutputScope.cs
- ClickablePoint.cs
- CodeTypeParameter.cs
- FullTextBreakpoint.cs
- CacheVirtualItemsEvent.cs
- PolicyImporterElementCollection.cs
- MobileFormsAuthentication.cs
- ReferentialConstraintRoleElement.cs
- PolyQuadraticBezierSegment.cs
- EdmRelationshipRoleAttribute.cs
- Number.cs
- FtpWebRequest.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- DnsPermission.cs
- TreeNode.cs
- SerializerDescriptor.cs
- WriteableOnDemandPackagePart.cs
- SemanticResultValue.cs
- MruCache.cs
- ComponentResourceKeyConverter.cs
- SelectionChangedEventArgs.cs
- SecurityCriticalDataForSet.cs
- HashAlgorithm.cs
- ViewDesigner.cs
- handlecollector.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- PerfService.cs
- ClientApiGenerator.cs
- DataGridColumnFloatingHeader.cs
- ClaimComparer.cs
- InstalledFontCollection.cs
- OleDbParameterCollection.cs
- EdmItemError.cs
- TextBox.cs
- SQLResource.cs
- DropShadowEffect.cs
- VirtualPathUtility.cs
- ProxyWebPartConnectionCollection.cs
- TopClause.cs
- EnvironmentPermission.cs
- SwitchExpression.cs
- ObjectTypeMapping.cs
- XmlUTF8TextWriter.cs
- ProvidersHelper.cs
- ParserOptions.cs
- DiscoveryClientProtocol.cs
- SqlAliasesReferenced.cs
- Missing.cs
- EventLogPermissionEntryCollection.cs
- Resources.Designer.cs
- InvalidCommandTreeException.cs
- ListItemConverter.cs
- StringAnimationBase.cs
- XPathQueryGenerator.cs
- PasswordRecovery.cs
- PixelShader.cs
- HtmlInputPassword.cs
- InheritedPropertyChangedEventArgs.cs
- SafeUserTokenHandle.cs
- PeerResolverSettings.cs
- Util.cs
- Substitution.cs
- MatrixIndependentAnimationStorage.cs
- PathSegment.cs
- XXXOnTypeBuilderInstantiation.cs
- CursorInteropHelper.cs
- StringBuilder.cs
- DataGridViewColumnCollectionDialog.cs
- MemberHolder.cs
- DockAndAnchorLayout.cs
- DataTableReaderListener.cs
- Package.cs
- ServiceDescription.cs
- RectConverter.cs
- MobileCategoryAttribute.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- FilteredDataSetHelper.cs
- KeyValueConfigurationElement.cs
- EntityDataSourceChangingEventArgs.cs
- ListChunk.cs
- HtmlInputImage.cs
- BatchParser.cs
- Assert.cs
- ToolBar.cs
- SelectiveScrollingGrid.cs
- VisualTreeUtils.cs
- CodeDomSerializerBase.cs
- DigestComparer.cs
- StringExpressionSet.cs
- WebBrowserEvent.cs
- KnownBoxes.cs
- SkipStoryboardToFill.cs
- EntityDataSourceUtil.cs