A .golden/richParagraphLayout/mixedLineHeightBaseline.golden => .golden/richParagraphLayout/mixedLineHeightBaseline.golden +306 -0
@@ 0,0 1,306 @@
+ParagraphLayout
+ { paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 16708, y_size = -9400}
+ , paragraphFragments =
+ [ Fragment
+ { fragmentUserData = "mediumText"
+ , fragmentLine = 1
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 0, y_origin = -290, x_size = 3928, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 0, y_origin = -200, x_size = 3928, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 80, cluster = 6, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 7, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 71, cluster = 8, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 76, cluster = 9, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 88, cluster = 10, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 11, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 12, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "smallText"
+ , fragmentLine = 1
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "smallBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 3928, y_origin = -290, x_size = 2606, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 3928, y_origin = -450, x_size = 2606, y_size = -800}
+ , fragmentPen = (0, -772)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 86, cluster = 13, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 14, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 15, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 16, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 17, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 18, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "mediumText"
+ , fragmentLine = 1
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 6534, y_origin = -290, x_size = 3928, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 6534, y_origin = -200, x_size = 3928, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 80, cluster = 19, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 20, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 71, cluster = 21, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 76, cluster = 22, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 88, cluster = 23, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 24, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 25, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "largeText"
+ , fragmentLine = 1
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "largeBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 10462, y_origin = -290, x_size = 2549, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 10462, y_origin = 0, x_size = 2549, y_size = -1700}
+ , fragmentPen = (0, -1222)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 79, cluster = 26, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 27, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 85, cluster = 28, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 74, cluster = 29, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 578, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 30, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 31, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "mediumText"
+ , fragmentLine = 1
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 13011, y_origin = -290, x_size = 3697, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 13011, y_origin = -200, x_size = 3697, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 80, cluster = 32, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 33, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 71, cluster = 34, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 76, cluster = 35, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 88, cluster = 36, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 37, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "lineBreak"
+ , fragmentLine = 1
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 16708, y_origin = -290, x_size = 0, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 16708, y_origin = -200, x_size = 0, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ []
+ }
+ , Fragment
+ { fragmentUserData = "smallText"
+ , fragmentLine = 2
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "smallBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 0, y_origin = -1990, x_size = 2606, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 0, y_origin = -2150, x_size = 2606, y_size = -800}
+ , fragmentPen = (0, -772)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 86, cluster = 40, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 41, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 42, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 43, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 44, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 45, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "mediumText"
+ , fragmentLine = 2
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 2606, y_origin = -1990, x_size = 3928, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 2606, y_origin = -1900, x_size = 3928, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 80, cluster = 46, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 47, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 71, cluster = 48, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 76, cluster = 49, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 88, cluster = 50, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 51, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 52, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "largeText"
+ , fragmentLine = 2
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "largeBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 6534, y_origin = -1990, x_size = 2318, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 6534, y_origin = -1700, x_size = 2318, y_size = -1700}
+ , fragmentPen = (0, -1222)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 79, cluster = 53, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 54, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 85, cluster = 55, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 74, cluster = 56, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 578, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 57, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "lineBreak"
+ , fragmentLine = 2
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 8852, y_origin = -1990, x_size = 0, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 8852, y_origin = -1900, x_size = 0, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ []
+ }
+ , Fragment
+ { fragmentUserData = "mediumText"
+ , fragmentLine = 3
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 0, y_origin = -3490, x_size = 3928, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 0, y_origin = -3400, x_size = 3928, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 80, cluster = 60, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 61, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 71, cluster = 62, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 76, cluster = 63, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 88, cluster = 64, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 65, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 66, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "smallText"
+ , fragmentLine = 3
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "smallBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 3928, y_origin = -3490, x_size = 2375, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 3928, y_origin = -3650, x_size = 2375, y_size = -800}
+ , fragmentPen = (0, -772)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 86, cluster = 67, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 68, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 69, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 70, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 71, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "lineBreak"
+ , fragmentLine = 3
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 6303, y_origin = -3490, x_size = 0, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 6303, y_origin = -3400, x_size = 0, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ []
+ }
+ , Fragment
+ { fragmentUserData = "largeText"
+ , fragmentLine = 4
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "largeBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 0, y_origin = -4990, x_size = 2549, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 0, y_origin = -4700, x_size = 2549, y_size = -1700}
+ , fragmentPen = (0, -1222)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 79, cluster = 74, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 75, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 85, cluster = 76, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 74, cluster = 77, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 578, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 78, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 79, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "mediumText"
+ , fragmentLine = 4
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 2549, y_origin = -4990, x_size = 3697, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 2549, y_origin = -4900, x_size = 3697, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 80, cluster = 80, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 81, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 71, cluster = 82, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 76, cluster = 83, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 88, cluster = 84, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 85, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "lineBreak"
+ , fragmentLine = 4
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 6246, y_origin = -4990, x_size = 0, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 6246, y_origin = -4900, x_size = 0, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ []
+ }
+ , Fragment
+ { fragmentUserData = "smallText"
+ , fragmentLine = 5
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "smallBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 0, y_origin = -6490, x_size = 2375, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 0, y_origin = -6650, x_size = 2375, y_size = -800}
+ , fragmentPen = (0, -772)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 86, cluster = 88, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 89, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 90, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 91, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 92, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "lineBreak"
+ , fragmentLine = 5
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 2375, y_origin = -6490, x_size = 0, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 2375, y_origin = -6400, x_size = 0, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ []
+ }
+ , Fragment
+ { fragmentUserData = "largeText"
+ , fragmentLine = 6
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "largeBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 0, y_origin = -7990, x_size = 2318, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 0, y_origin = -7700, x_size = 2318, y_size = -1700}
+ , fragmentPen = (0, -1222)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 79, cluster = 95, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 96, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 85, cluster = 97, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 74, cluster = 98, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 578, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 99, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ ]
+ }
A .golden/richParagraphLayout/mixedLineHeightBottom.golden => .golden/richParagraphLayout/mixedLineHeightBottom.golden +306 -0
@@ 0,0 1,306 @@
+ParagraphLayout
+ { paragraphRect = Rect {x_origin = 0, y_origin = 0, x_size = 16708, y_size = -9400}
+ , paragraphFragments =
+ [ Fragment
+ { fragmentUserData = "mediumText"
+ , fragmentLine = 1
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 0, y_origin = -490, x_size = 3928, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 0, y_origin = -400, x_size = 3928, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 80, cluster = 6, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 7, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 71, cluster = 8, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 76, cluster = 9, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 88, cluster = 10, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 11, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 12, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "smallText"
+ , fragmentLine = 1
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "smallBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 3928, y_origin = -740, x_size = 2606, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 3928, y_origin = -900, x_size = 2606, y_size = -800}
+ , fragmentPen = (0, -772)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 86, cluster = 13, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 14, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 15, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 16, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 17, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 18, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "mediumText"
+ , fragmentLine = 1
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 6534, y_origin = -490, x_size = 3928, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 6534, y_origin = -400, x_size = 3928, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 80, cluster = 19, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 20, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 71, cluster = 21, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 76, cluster = 22, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 88, cluster = 23, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 24, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 25, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "largeText"
+ , fragmentLine = 1
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "largeBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 10462, y_origin = -290, x_size = 2549, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 10462, y_origin = 0, x_size = 2549, y_size = -1700}
+ , fragmentPen = (0, -1222)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 79, cluster = 26, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 27, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 85, cluster = 28, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 74, cluster = 29, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 578, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 30, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 31, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "mediumText"
+ , fragmentLine = 1
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 13011, y_origin = -490, x_size = 3697, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 13011, y_origin = -400, x_size = 3697, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 80, cluster = 32, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 33, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 71, cluster = 34, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 76, cluster = 35, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 88, cluster = 36, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 37, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "lineBreak"
+ , fragmentLine = 1
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 16708, y_origin = -490, x_size = 0, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 16708, y_origin = -400, x_size = 0, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ []
+ }
+ , Fragment
+ { fragmentUserData = "smallText"
+ , fragmentLine = 2
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "smallBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 0, y_origin = -2440, x_size = 2606, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 0, y_origin = -2600, x_size = 2606, y_size = -800}
+ , fragmentPen = (0, -772)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 86, cluster = 40, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 41, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 42, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 43, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 44, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 45, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "mediumText"
+ , fragmentLine = 2
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 2606, y_origin = -2190, x_size = 3928, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 2606, y_origin = -2100, x_size = 3928, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 80, cluster = 46, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 47, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 71, cluster = 48, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 76, cluster = 49, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 88, cluster = 50, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 51, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 52, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "largeText"
+ , fragmentLine = 2
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "largeBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 6534, y_origin = -1990, x_size = 2318, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 6534, y_origin = -1700, x_size = 2318, y_size = -1700}
+ , fragmentPen = (0, -1222)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 79, cluster = 53, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 54, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 85, cluster = 55, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 74, cluster = 56, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 578, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 57, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "lineBreak"
+ , fragmentLine = 2
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 8852, y_origin = -2190, x_size = 0, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 8852, y_origin = -2100, x_size = 0, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ []
+ }
+ , Fragment
+ { fragmentUserData = "mediumText"
+ , fragmentLine = 3
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 0, y_origin = -3490, x_size = 3928, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 0, y_origin = -3400, x_size = 3928, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 80, cluster = 60, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 61, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 71, cluster = 62, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 76, cluster = 63, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 88, cluster = 64, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 65, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 66, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "smallText"
+ , fragmentLine = 3
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "smallBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 3928, y_origin = -3740, x_size = 2375, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 3928, y_origin = -3900, x_size = 2375, y_size = -800}
+ , fragmentPen = (0, -772)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 86, cluster = 67, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 68, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 69, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 70, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 71, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "lineBreak"
+ , fragmentLine = 3
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 6303, y_origin = -3490, x_size = 0, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 6303, y_origin = -3400, x_size = 0, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ []
+ }
+ , Fragment
+ { fragmentUserData = "largeText"
+ , fragmentLine = 4
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "largeBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 0, y_origin = -4990, x_size = 2549, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 0, y_origin = -4700, x_size = 2549, y_size = -1700}
+ , fragmentPen = (0, -1222)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 79, cluster = 74, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 75, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 85, cluster = 76, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 74, cluster = 77, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 578, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 78, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 3, cluster = 79, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 231, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "mediumText"
+ , fragmentLine = 4
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 2549, y_origin = -5190, x_size = 3697, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 2549, y_origin = -5100, x_size = 3697, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 80, cluster = 80, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 81, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 71, cluster = 82, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 589, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 76, cluster = 83, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 253, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 88, cluster = 84, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 574, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 85, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "lineBreak"
+ , fragmentLine = 4
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 6246, y_origin = -5190, x_size = 0, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 6246, y_origin = -5100, x_size = 0, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ []
+ }
+ , Fragment
+ { fragmentUserData = "smallText"
+ , fragmentLine = 5
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "smallBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 0, y_origin = -6740, x_size = 2375, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 0, y_origin = -6900, x_size = 2375, y_size = -800}
+ , fragmentPen = (0, -772)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 86, cluster = 88, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 446, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 80, cluster = 89, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 861, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 90, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 91, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 79, cluster = 92, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ , Fragment
+ { fragmentUserData = "lineBreak"
+ , fragmentLine = 5
+ , fragmentAncestorBoxes =
+ []
+ , fragmentContentRect = Rect {x_origin = 2375, y_origin = -6490, x_size = 0, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 2375, y_origin = -6400, x_size = 0, y_size = -1300}
+ , fragmentPen = (0, -1022)
+ , fragmentGlyphs =
+ []
+ }
+ , Fragment
+ { fragmentUserData = "largeText"
+ , fragmentLine = 6
+ , fragmentAncestorBoxes =
+ [ AncestorBox {boxUserData = "largeBox", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
+ ]
+ , fragmentContentRect = Rect {x_origin = 0, y_origin = -7990, x_size = 2318, y_size = -1121}
+ , fragmentRect = Rect {x_origin = 0, y_origin = -7700, x_size = 2318, y_size = -1700}
+ , fragmentPen = (0, -1222)
+ , fragmentGlyphs =
+ [ (GlyphInfo {codepoint = 79, cluster = 95, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 273, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 68, cluster = 96, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 522, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 85, cluster = 97, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 386, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 74, cluster = 98, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 578, y_advance = 0, x_offset = 0, y_offset = 0})
+ , (GlyphInfo {codepoint = 72, cluster = 99, unsafeToBreak = False, unsafeToConcat = False, safeToInsertTatweel = False}, GlyphPos {x_advance = 559, y_advance = 0, x_offset = 0, y_offset = 0})
+ ]
+ }
+ ]
+ }
R .golden/richParagraphLayout/mixedLineHeight.golden => .golden/richParagraphLayout/mixedLineHeightTop.golden +0 -0
M test/Data/Text/ParagraphLayout/Rich/ParagraphData.hs => test/Data/Text/ParagraphLayout/Rich/ParagraphData.hs +17 -11
@@ 171,36 171,40 @@ mixedDirectionSimpleParagraph dir font = constructParagraph
t = (defaultTextOptions dir) { textFont = font, textLanguage = lang }
(_, lang, textContents, _) = mixedDirectionSimple dir
-mixedLineHeightParagraph :: (Int32, Int32, Int32) -> Font -> ParagraphOptions ->
- Paragraph String
-mixedLineHeightParagraph (lhSmall, lhMedium, lhLarge) font = constructParagraph
+mixedLineHeightParagraph
+ :: (Int32, Int32, Int32)
+ -> VerticalAlignment
+ -> Font
+ -> ParagraphOptions
+ -> Paragraph String
+mixedLineHeightParagraph lhs va font = constructParagraph
(pack "prefix")
(rootBox tMedium
-- Line 1: all 3 heights, with medium height prevailing.
[ text "mediumText" "medium "
- , box "smallBox" b_ tSmall [text "smallText" "small "]
+ , box "smallBox" b tSmall [text "smallText" "small "]
, text "mediumText" "medium "
- , box "largeBox" b_ tLarge [text "largeText" "large "]
+ , box "largeBox" b tLarge [text "largeText" "large "]
, text "mediumText" "medium "
, text "lineBreak" "\n"
-- Line 2: all 3 line heights, with medium only in the middle.
- , box "smallBox" b_ tSmall [text "smallText" "small "]
+ , box "smallBox" b tSmall [text "smallText" "small "]
, text "mediumText" "medium "
- , box "largeBox" b_ tLarge [text "largeText" "large "]
+ , box "largeBox" b tLarge [text "largeText" "large "]
, text "lineBreak" "\n"
-- Line 3: asymmetric, medium changing into small.
, text "mediumText" "medium "
- , box "smallBox" b_ tSmall [text "smallText" "small "]
+ , box "smallBox" b tSmall [text "smallText" "small "]
, text "lineBreak" "\n"
-- Line 4: asymmetric, large changing into medium.
- , box "largeBox" b_ tLarge [text "largeText" "large "]
+ , box "largeBox" b tLarge [text "largeText" "large "]
, text "mediumText" "medium "
, text "lineBreak" "\n"
-- Line 5: small only.
- , box "smallBox" b_ tSmall [text "smallText" "small "]
+ , box "smallBox" b tSmall [text "smallText" "small "]
, text "lineBreak" "\n"
-- Line 6: large only.
- , box "largeBox" b_ tLarge [text "largeText" "large "]
+ , box "largeBox" b tLarge [text "largeText" "large "]
]
)
(pack "suffix")
@@ 208,7 212,9 @@ mixedLineHeightParagraph (lhSmall, lhMedium, lhLarge) font = constructParagraph
tLarge = t { textLineHeight = Absolute lhLarge }
tMedium = t { textLineHeight = Absolute lhMedium }
tSmall = t { textLineHeight = Absolute lhSmall }
+ (lhSmall, lhMedium, lhLarge) = lhs
t = tLTR { textFont = font, textLanguage = "en" }
+ b = b_ { boxVerticalAlignment = va }
mixedScriptParagraph :: Font -> ParagraphOptions -> Paragraph String
mixedScriptParagraph font = constructParagraph
M test/Data/Text/ParagraphLayout/RichSpec.hs => test/Data/Text/ParagraphLayout/RichSpec.hs +28 -4
@@ 129,15 129,39 @@ spec = do
it "does not wrap the same at 2 units smaller width" $
resultUnsafe2 `shouldNotBeWrappedLike` result20em
- it "handles mixed line height" $ do
+ describe "mixed line height" $ do
let opts = defaultParagraphOptions
{ paragraphAlignment = AlignStart
, paragraphMaxWidth = largeWidth
}
let lineHeights = (800, 1300, 1700)
- let input = mixedLineHeightParagraph lineHeights font opts
- let result = layoutRich input
- result `shouldBeGolden` "mixedLineHeight"
+
+ it "aligns to top of line" $ do
+ let input = mixedLineHeightParagraph
+ lineHeights
+ AlignLineTop
+ font
+ opts
+ let result = layoutRich input
+ result `shouldBeGolden` "mixedLineHeightTop"
+
+ it "aligns to bottom of line" $ do
+ let input = mixedLineHeightParagraph
+ lineHeights
+ AlignLineBottom
+ font
+ opts
+ let result = layoutRich input
+ result `shouldBeGolden` "mixedLineHeightBottom"
+
+ it "aligns to baseline" $ do
+ let input = mixedLineHeightParagraph
+ lineHeights
+ (AlignBaseline 0)
+ font
+ opts
+ let result = layoutRich input
+ result `shouldBeGolden` "mixedLineHeightBaseline"
it "handles mixed sizes" $ do
let opts = defaultParagraphOptions