From 8ed8897fd1fccd49f1bc5f7e75962b20f6d20e35 Mon Sep 17 00:00:00 2001 From: MarcinZiabek Date: Tue, 1 Nov 2022 21:32:37 +0100 Subject: [PATCH] Improved: the Inlined element should display children aligned to right (by default) when in RTL mode --- QuestPDF/Elements/Inlined.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/QuestPDF/Elements/Inlined.cs b/QuestPDF/Elements/Inlined.cs index 030b332..051d140 100644 --- a/QuestPDF/Elements/Inlined.cs +++ b/QuestPDF/Elements/Inlined.cs @@ -36,7 +36,7 @@ namespace QuestPDF.Elements internal float VerticalSpacing { get; set; } internal float HorizontalSpacing { get; set; } - internal InlinedAlignment ElementsAlignment { get; set; } + internal InlinedAlignment? ElementsAlignment { get; set; } internal VerticalAlignment BaselineAlignment { get; set; } public void ResetState() @@ -51,6 +51,8 @@ namespace QuestPDF.Elements internal override SpacePlan Measure(Size availableSpace) { + SetDefaultAlignment(); + if (!ChildrenQueue.Any()) return SpacePlan.FullRender(Size.Zero); @@ -83,6 +85,8 @@ namespace QuestPDF.Elements internal override void Draw(Size availableSpace) { + SetDefaultAlignment(); + var lines = Compose(availableSpace); var topOffset = 0f; @@ -169,6 +173,16 @@ namespace QuestPDF.Elements } } + void SetDefaultAlignment() + { + if (ElementsAlignment.HasValue) + return; + + ElementsAlignment = ContentDirection == ContentDirection.LeftToRight + ? InlinedAlignment.Left + : InlinedAlignment.Right; + } + Size GetLineSize(ICollection measurements) { var width = measurements.Sum(x => x.Size.Width);