diff --git a/QuestPDF/Elements/RowOld.cs b/QuestPDF/Elements/RowOld.cs deleted file mode 100644 index 7f2776c..0000000 --- a/QuestPDF/Elements/RowOld.cs +++ /dev/null @@ -1,179 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using QuestPDF.Drawing; -using QuestPDF.Infrastructure; - -namespace QuestPDF.Elements -{ - // TODO: remove - internal class RowOldElement : Constrained - { - public float ConstantSize { get; } - public float RelativeSize { get; } - - public RowOldElement(float constantSize, float relativeSize) - { - ConstantSize = constantSize; - RelativeSize = relativeSize; - } - - public void SetWidth(float width) - { - MinWidth = width; - MaxWidth = width; - } - } - - // TODO: remove - internal class BinaryRow : Element, ICacheable, IStateResettable - { - internal Element Left { get; set; } - internal Element Right { get; set; } - - private bool IsLeftRendered { get; set; } - private bool IsRightRendered { get; set; } - - public void ResetState() - { - IsLeftRendered = false; - IsRightRendered = false; - } - - internal override IEnumerable GetChildren() - { - yield return Left; - yield return Right; - } - - internal override void CreateProxy(Func create) - { - Left = create(Left); - Right = create(Right); - } - - internal override SpacePlan Measure(Size availableSpace) - { - var leftMeasurement = Left.Measure(new Size(availableSpace.Width, availableSpace.Height)); - - if (leftMeasurement.Type == SpacePlanType.Wrap) - return SpacePlan.Wrap(); - - if (leftMeasurement.Type == SpacePlanType.FullRender) - IsLeftRendered = true; - - var rightMeasurement = Right.Measure(new Size(availableSpace.Width - leftMeasurement.Width, availableSpace.Height)); - - if (rightMeasurement.Type == SpacePlanType.Wrap) - return SpacePlan.Wrap(); - - if (leftMeasurement.Type == SpacePlanType.FullRender) - IsRightRendered = true; - - var totalWidth = leftMeasurement.Width + rightMeasurement.Width; - var totalHeight = Math.Max(leftMeasurement.Height, rightMeasurement.Height); - - var targetSize = new Size(totalWidth, totalHeight); - - if ((!IsLeftRendered && leftMeasurement.Type == SpacePlanType.PartialRender) || - (!IsRightRendered && rightMeasurement.Type == SpacePlanType.PartialRender)) - return SpacePlan.PartialRender(targetSize); - - return SpacePlan.FullRender(targetSize); - } - - internal override void Draw(Size availableSpace) - { - var leftMeasurement = Left.Measure(new Size(availableSpace.Width, availableSpace.Height)); - var leftWidth = leftMeasurement.Width; - - Left.Draw(new Size(leftWidth, availableSpace.Height)); - - Canvas.Translate(new Position(leftWidth, 0)); - Right.Draw(new Size(availableSpace.Width - leftWidth, availableSpace.Height)); - Canvas.Translate(new Position(-leftWidth, 0)); - } - } - - // TODO: remove - internal class RowOld : Element - { - public float Spacing { get; set; } = 0; - - public ICollection Items { get; internal set; } = new List(); - private Element? RootElement { get; set; } - - internal override IEnumerable GetChildren() - { - if (RootElement == null) - ComposeTree(); - - yield return RootElement; - } - - internal override SpacePlan Measure(Size availableSpace) - { - UpdateElementsWidth(availableSpace.Width); - return RootElement.Measure(availableSpace); - } - - internal override void Draw(Size availableSpace) - { - UpdateElementsWidth(availableSpace.Width); - RootElement.Draw(availableSpace); - } - - #region structure - - private void ComposeTree() - { - Items = AddSpacing(Items, Spacing); - - var elements = Items.Cast().ToArray(); - RootElement = BuildTree(elements); - } - - private void UpdateElementsWidth(float availableWidth) - { - var constantWidth = Items.Sum(x => x.ConstantSize); - var relativeWidth = Items.Sum(x => x.RelativeSize); - - var widthPerRelativeUnit = (relativeWidth > 0) ? (availableWidth - constantWidth) / relativeWidth : 0; - - foreach (var row in Items) - { - row.SetWidth(row.ConstantSize + row.RelativeSize * widthPerRelativeUnit); - } - } - - private static ICollection AddSpacing(ICollection elements, float spacing) - { - if (spacing < Size.Epsilon) - return elements; - - return elements - .SelectMany(x => new[] { new RowOldElement(spacing, 0), x }) - .Skip(1) - .ToList(); - } - - private static Element BuildTree(Span elements) - { - if (elements.IsEmpty) - return Empty.Instance; - - if (elements.Length == 1) - return elements[0]; - - var half = elements.Length / 2; - - return new BinaryRow - { - Left = BuildTree(elements.Slice(0, half)), - Right = BuildTree(elements.Slice(half)) - }; - } - - #endregion - } -} \ No newline at end of file diff --git a/QuestPDF/Elements/Stack.cs b/QuestPDF/Elements/Stack.cs deleted file mode 100644 index e72864f..0000000 --- a/QuestPDF/Elements/Stack.cs +++ /dev/null @@ -1,145 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using QuestPDF.Drawing; -using QuestPDF.Fluent; -using QuestPDF.Infrastructure; -using IComponent = QuestPDF.Infrastructure.IComponent; -using IContainer = QuestPDF.Infrastructure.IContainer; - -namespace QuestPDF.Elements -{ - // TODO: remove - internal class Binarycolumn : Element, IStateResettable, ICacheable - { - internal Element First { get; set; } = Empty.Instance; - internal Element Second { get; set; } = Empty.Instance; - - internal bool IsFirstRendered { get; set; } = false; - - internal override IEnumerable GetChildren() - { - yield return First; - yield return Second; - } - - public void ResetState() - { - IsFirstRendered = false; - } - - internal override void CreateProxy(Func create) - { - First = create(First); - Second = create(Second); - } - - internal override SpacePlan Measure(Size availableSpace) - { - var firstElement = IsFirstRendered ? Empty.Instance : First; - var firstSize = firstElement.Measure(availableSpace); - - if (firstSize.Type == SpacePlanType.Wrap) - return SpacePlan.Wrap(); - - if (firstSize.Type == SpacePlanType.PartialRender) - return firstSize; - - var spaceForSecond = new Size(availableSpace.Width, availableSpace.Height - firstSize.Height); - var secondSize = Second.Measure(spaceForSecond); - - if (secondSize.Type == SpacePlanType.Wrap) - return SpacePlan.PartialRender(firstSize); - - var totalWidth = Math.Max(firstSize.Width, secondSize.Width); - var totalHeight = firstSize.Height + secondSize.Height; - var targetSize = new Size(totalWidth, totalHeight); - - if (secondSize.Type == SpacePlanType.PartialRender) - return SpacePlan.PartialRender(targetSize); - - return SpacePlan.FullRender(targetSize); - } - - internal override void Draw(Size availableSpace) - { - var firstElement = IsFirstRendered ? Empty.Instance : First; - - var firstMeasurement = firstElement.Measure(availableSpace); - - if (firstMeasurement.Type == SpacePlanType.FullRender) - IsFirstRendered = true; - - var firstSize = firstMeasurement; - - if (firstSize.Type != SpacePlanType.Wrap) - firstElement.Draw(new Size(availableSpace.Width, firstSize.Height)); - - if (firstMeasurement.Type == SpacePlanType.Wrap || firstMeasurement.Type == SpacePlanType.PartialRender) - return; - - var firstHeight = firstSize.Height; - var spaceForSecond = new Size(availableSpace.Width, availableSpace.Height - firstHeight); - var secondMeasurement = Second.Measure(spaceForSecond); - - if (secondMeasurement.Type == SpacePlanType.Wrap) - return; - - Canvas.Translate(new Position(0, firstHeight)); - Second.Draw(new Size(availableSpace.Width, secondMeasurement.Height)); - Canvas.Translate(new Position(0, -firstHeight)); - - if (secondMeasurement.Type == SpacePlanType.FullRender) - IsFirstRendered = false; - } - } - - // TODO: remove - internal class column : IComponent - { - public ICollection Items { get; } = new List(); - public float Spacing { get; set; } = 0; - - public void Compose(IContainer container) - { - var elements = AddSpacing(Spacing, Items); - - container - .PaddingBottom(-Spacing) - .Element(BuildTree(elements.ToArray())); - } - - static ICollection AddSpacing(float spacing, ICollection elements) - { - if (spacing < Size.Epsilon) - return elements; - - return elements - .Where(x => !(x is Empty)) - .Select(x => new Padding - { - Bottom = spacing, - Child = x - }) - .Cast() - .ToList(); - } - - static Element BuildTree(Span elements) - { - if (elements.IsEmpty) - return Empty.Instance; - - if (elements.Length == 1) - return elements[0]; - - var half = elements.Length / 2; - - return new Binarycolumn - { - First = BuildTree(elements.Slice(0, half)), - Second = BuildTree(elements.Slice(half)) - }; - } - } -} \ No newline at end of file diff --git a/QuestPDF/Fluent/ColumnExtensions.cs b/QuestPDF/Fluent/ColumnExtensions.cs index a16a299..9c10b20 100644 --- a/QuestPDF/Fluent/ColumnExtensions.cs +++ b/QuestPDF/Fluent/ColumnExtensions.cs @@ -28,8 +28,7 @@ namespace QuestPDF.Fluent public static class ColumnExtensions { - // TODO: deprecated Box method in QuestPDF 2022.2 - [Obsolete("This element has been renamed. Please use the Column method.")] + [Obsolete("This element has been renamed since version 2022.2. Please use the 'Column' method.")] public static void Stack(this IContainer element, Action handler) { element.Column(handler); diff --git a/QuestPDF/Fluent/DecorationExtensions.cs b/QuestPDF/Fluent/DecorationExtensions.cs index 6be4fbe..97a4428 100644 --- a/QuestPDF/Fluent/DecorationExtensions.cs +++ b/QuestPDF/Fluent/DecorationExtensions.cs @@ -46,8 +46,7 @@ namespace QuestPDF.Fluent #region Obsolete - // TODO: deprecated Box method in QuestPDF 2022.2 - [Obsolete("This element has been renamed. Please use the Before method.")] + [Obsolete("This element has been renamed since version 2022.2. Please use the 'Before' method.")] public IContainer Header() { var container = new Container(); @@ -55,15 +54,13 @@ namespace QuestPDF.Fluent return container; } - // TODO: deprecated Box method in QuestPDF 2022.2 - [Obsolete("This element has been renamed. Please use the Before method.")] + [Obsolete("This element has been renamed since version 2022.2. Please use the 'Before' method.")] public void Header(Action handler) { handler?.Invoke(Header()); } - // TODO: deprecated Box method in QuestPDF 2022.2 - [Obsolete("This element has been renamed. Please use the After method.")] + [Obsolete("This element has been renamed since version 2022.2. Please use the 'After' method.")] public IContainer Footer() { var container = new Container(); @@ -71,8 +68,7 @@ namespace QuestPDF.Fluent return container; } - // TODO: deprecated Box method in QuestPDF 2022.2 - [Obsolete("This element has been renamed. Please use the After method.")] + [Obsolete("This element has been renamed since version 2022.2. Please use the 'After' method.")] public void Footer(Action handler) { handler?.Invoke(Footer()); diff --git a/QuestPDF/Fluent/ElementExtensions.cs b/QuestPDF/Fluent/ElementExtensions.cs index 8ac8271..38f5cc5 100644 --- a/QuestPDF/Fluent/ElementExtensions.cs +++ b/QuestPDF/Fluent/ElementExtensions.cs @@ -136,8 +136,7 @@ namespace QuestPDF.Fluent }); } - // TODO: deprecated Box method in QuestPDF 2022.1 - [Obsolete("This element has been renamed. Please use the MinimalBox method.")] + [Obsolete("This element has been renamed since version 2022.1. Please use the MinimalBox method.")] public static IContainer Box(this IContainer element) { return element.Element(new MinimalBox()); diff --git a/QuestPDF/Fluent/RowExtensions.cs b/QuestPDF/Fluent/RowExtensions.cs index 2968eef..2aa5f69 100644 --- a/QuestPDF/Fluent/RowExtensions.cs +++ b/QuestPDF/Fluent/RowExtensions.cs @@ -25,15 +25,13 @@ namespace QuestPDF.Fluent return element; } - // TODO: deprecated Box method in QuestPDF 2022.2 - [Obsolete("This element has been renamed. Please use the RelativeItem method.")] + [Obsolete("This element has been renamed since version 2022.2. Please use the RelativeItem method.")] public IContainer RelativeColumn(float size = 1) { return Item(RowItemType.Relative, size); } - // TODO: deprecated Box method in QuestPDF 2022.2 - [Obsolete("This element has been renamed. Please use the ConstantItem method.")] + [Obsolete("This element has been renamed since version 2022.2. Please use the ConstantItem method.")] public IContainer ConstantColumn(float size) { return Item(RowItemType.Constant, size);