|
//---------------------------------------------------------------------------
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// File: DirtyTextRange.cs
//
// Description: Dirty text range describes change in the TextContainer.
//
// History:
// 06/06/2003 : Microsoft - created.
//
//---------------------------------------------------------------------------
using System;
using System.Windows.Controls;
using System.Windows.Documents;
namespace MS.Internal.PtsHost
{
// ----------------------------------------------------------------------
// Dirty text range describes change in the TextContainer.
// ----------------------------------------------------------------------
internal struct DirtyTextRange
{
// ------------------------------------------------------------------
// Constructor
//
// startIndex - Index of the starting position of the change.
// positionsAdded - Number of characters added.
// positionsRemoved - Number of characters removed.
// ------------------------------------------------------------------
internal DirtyTextRange(int startIndex, int positionsAdded, int positionsRemoved, bool fromHighlightLayer = false)
{
StartIndex = startIndex;
PositionsAdded = positionsAdded;
PositionsRemoved = positionsRemoved;
FromHighlightLayer = fromHighlightLayer;
}
// ------------------------------------------------------------------
// Constructor
//
// change - TextContainer change data.
// ------------------------------------------------------------------
internal DirtyTextRange(TextContainerChangeEventArgs change)
{
StartIndex = change.ITextPosition.Offset;
PositionsAdded = 0;
PositionsRemoved = 0;
FromHighlightLayer = false;
switch (change.TextChange)
{
case TextChangeType.ContentAdded:
PositionsAdded = change.Count;
break;
case TextChangeType.ContentRemoved:
PositionsRemoved = change.Count;
break;
case TextChangeType.PropertyModified:
PositionsAdded = change.Count;
PositionsRemoved = change.Count;
break;
}
}
// ------------------------------------------------------------------
// Index of the starting position of the change.
// ------------------------------------------------------------------
internal int StartIndex { get; set; }
// ------------------------------------------------------------------
// Number of characters added.
// ------------------------------------------------------------------
internal int PositionsAdded { get; set; }
// ------------------------------------------------------------------
// Number of characters removed.
// ------------------------------------------------------------------
internal int PositionsRemoved { get; set; }
/// <summary>
/// DDVSO:405199
/// If this dirty text range is caused by a highlight layer change.
/// </summary>
internal bool FromHighlightLayer { get; set; }
}
}
|