Files
QuestPDF/QuestPDF/Elements/Layers.cs
T
2022-01-06 19:57:21 +01:00

38 lines
981 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using QuestPDF.Drawing;
using QuestPDF.Infrastructure;
namespace QuestPDF.Elements
{
internal class Layer : ContainerElement
{
public bool IsPrimary { get; set; }
}
internal class Layers : Element, ICacheable
{
public List<Layer> Children { get; set; } = new List<Layer>();
internal override IEnumerable<Element?> GetChildren()
{
return Children;
}
internal override SpacePlan Measure(Size availableSpace)
{
return Children
.Single(x => x.IsPrimary)
.Measure(availableSpace);
}
internal override void Draw(Size availableSpace)
{
Children
.Where(x => x.Measure(availableSpace).Type != SpacePlanType.Wrap)
.ToList()
.ForEach(x => x.Draw(availableSpace));
}
}
}