Files
QuestPDF/QuestPDF/Elements/ShowOnce.cs
T
Marcin Ziąbek 88e58500a8 Improved caching
2021-10-07 21:26:14 +02:00

34 lines
878 B
C#

using QuestPDF.Drawing;
using QuestPDF.Infrastructure;
namespace QuestPDF.Elements
{
internal class ShowOnce : ContainerElement, IStateResettable, ICacheable
{
private bool IsRendered { get; set; }
public void ResetState()
{
IsRendered = false;
}
internal override SpacePlan Measure(Size availableSpace)
{
if (Child == null || IsRendered)
return SpacePlan.FullRender(0, 0);
return base.Measure(availableSpace);
}
internal override void Draw(Size availableSpace)
{
if (Child == null || IsRendered)
return;
if (base.Measure(availableSpace).Type == SpacePlanType.FullRender)
IsRendered = true;
base.Draw(availableSpace);
}
}
}