Browse Source

handle letter spacing in TextStyleManager

Bennet Bo Fenner 3 years ago
parent
commit
e6bd63b3ec
1 changed files with 15 additions and 0 deletions
  1. 15 0
      QuestPDF/Infrastructure/TextStyleManager.cs

+ 15 - 0
QuestPDF/Infrastructure/TextStyleManager.cs

@@ -11,6 +11,7 @@ namespace QuestPDF.Infrastructure
         FontFamily,
         Size,
         LineHeight,
+        LetterSpacing,
         FontWeight,
         FontPosition,
         IsItalic,
@@ -101,6 +102,19 @@ namespace QuestPDF.Infrastructure
 
                 return origin with { LineHeight = castedValue };
             }
+
+            if(property == TextStyleProperty.LetterSpacing)
+            {
+                if (!overrideValue && origin.LetterSpacing != null)
+                    return origin;
+
+                var castedValue = (float?)value;
+
+                if (origin.LetterSpacing == castedValue)
+                    return origin;
+
+                return origin with { LetterSpacing = castedValue };
+            }
             
             if (property == TextStyleProperty.FontWeight)
             {
@@ -232,6 +246,7 @@ namespace QuestPDF.Infrastructure
             result = MutateStyle(result, TextStyleProperty.FontFamily, parent.FontFamily, overrideStyle);
             result = MutateStyle(result, TextStyleProperty.Size, parent.Size, overrideStyle);
             result = MutateStyle(result, TextStyleProperty.LineHeight, parent.LineHeight, overrideStyle);
+            result = MutateStyle(result, TextStyleProperty.LetterSpacing, parent.LetterSpacing, overrideStyle);
             result = MutateStyle(result, TextStyleProperty.FontWeight, parent.FontWeight, overrideStyle);
             result = MutateStyle(result, TextStyleProperty.FontPosition, parent.FontPosition, overrideStyle);
             result = MutateStyle(result, TextStyleProperty.IsItalic, parent.IsItalic, overrideStyle);