Package org.xhtmlrenderer.layout
Class InlineBoxing
java.lang.Object
org.xhtmlrenderer.layout.InlineBoxing
This class is responsible for flowing inline content into lines. Block
content which participates in an inline formatting context is also handled
here as well as floating and absolutely positioned content.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classprivate static final record -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static InlineLayoutBoxaddFirstLetterBox(LayoutContext c, LineBox current, InlineLayoutBox currentIB, LineBreakContext lbContext, int maxAvailableWidth, int remainingWidth) private static @Nullable InlineLayoutBoxaddOpenInlineBoxes(LayoutContext c, LineBox line, List<InlineBox> openParents, int cbWidth, Map<InlineBox, InlineLayoutBox> iBMap) private static voidalignInlineContent(LayoutContext c, Box box, float ascent, float descent, VerticalAlignContext vaContext) private static voidalignLine(LayoutContext c, LineBox current, int maxAvailableWidth) private static InlineBoxMeasurementscalculateInlineMeasurements(LayoutContext c, InlineLayoutBox iB, VerticalAlignContext vaContext) private static TextDecorationcalculateTextDecoration(int baseline, FSFontMetrics fm) static List<TextDecoration> calculateTextDecorations(Box box, int baseline, FSFontMetrics fm) static StrutMetricscreateDefaultStrutMetrics(LayoutContext c, Box container) private static voidfinishPendingInlineLayers(LayoutContext c, List<Layer> layers) private static InlineBoxMeasurementsgetInitialMeasurements(LayoutContext c, Box container, FSFontMetrics strutM) private static booleanhasTrimmableLeadingSpace(LineBox line, CalculatedStyle style, LineBreakContext lbContext, boolean zeroWidthInlineBlock) private static booleanisAlwaysBreak(LayoutContext c, BlockBox parent, int breakAtLine, int lineOffset) static voidlayoutContent(LayoutContext c, BlockBox box, int initialY, int breakAtLine) private static voidlayoutInlineBlockContent(LayoutContext c, BlockBox containingBlock, BlockBox inlineBlock, int initialY) private static InlineTextlayoutText(LayoutContext c, CalculatedStyle style, int remainingWidth, LineBreakContext lbContext, boolean needFirstLetter) private static voidmoveInlineContents(InlineLayoutBox box, int ty) private static voidmoveLineContents(LineBox current, int ty) private static LineBoxnewLine(LayoutContext c, int y, Box box) private static LineBoxnewLine(LayoutContext c, @Nullable LineBox previousLine, Box box) static intpositionHorizontally(CssContext c, Box current, int start) private static intpositionHorizontally(CssContext c, InlineLayoutBox current, int start) private static voidpositionInlineBlockVertically(LayoutContext c, VerticalAlignContext vaContext, BlockBox inlineBlock) private static voidpositionInlineChildrenVertically(LayoutContext c, InlineLayoutBox current, VerticalAlignContext vaContext) private static voidpositionInlineContentVertically(LayoutContext c, VerticalAlignContext vaContext, Box child) private static voidpositionInlineVertically(LayoutContext c, VerticalAlignContext vaContext, InlineLayoutBox iB) private static voidpositionVertically(LayoutContext c, Box container, LineBox current, @Nullable MarkerData markerData) private static intprocessOutOfFlowContent(LayoutContext c, LineBox current, BlockBox block, int available, List<FloatLayoutResult> pendingFloats) private static voidsaveLine(LineBox current, LayoutContext c, BlockBox block, int minHeight, int maxAvailableWidth, List<FloatLayoutResult> pendingFloats, boolean hasFirstLinePCs, List<Layer> pendingInlineLayers, @Nullable MarkerData markerData, int contentStart, boolean alwaysBreak) private static voidtrimLeadingSpace(LineBreakContext lbContext)
-
Field Details
-
MAX_ITERATION_COUNT
private static final int MAX_ITERATION_COUNT- See Also:
-
-
Constructor Details
-
InlineBoxing
private InlineBoxing()
-
-
Method Details
-
layoutContent
-
isAlwaysBreak
private static boolean isAlwaysBreak(LayoutContext c, BlockBox parent, int breakAtLine, int lineOffset) -
addFirstLetterBox
private static InlineLayoutBox addFirstLetterBox(LayoutContext c, LineBox current, InlineLayoutBox currentIB, LineBreakContext lbContext, int maxAvailableWidth, int remainingWidth) -
layoutInlineBlockContent
private static void layoutInlineBlockContent(LayoutContext c, BlockBox containingBlock, BlockBox inlineBlock, int initialY) -
positionHorizontally
-
positionHorizontally
-
createDefaultStrutMetrics
-
positionVertically
private static void positionVertically(LayoutContext c, Box container, LineBox current, @Nullable MarkerData markerData) -
positionInlineVertically
private static void positionInlineVertically(LayoutContext c, VerticalAlignContext vaContext, InlineLayoutBox iB) -
positionInlineBlockVertically
private static void positionInlineBlockVertically(LayoutContext c, VerticalAlignContext vaContext, BlockBox inlineBlock) -
moveLineContents
-
moveInlineContents
-
calculateInlineMeasurements
private static InlineBoxMeasurements calculateInlineMeasurements(LayoutContext c, InlineLayoutBox iB, VerticalAlignContext vaContext) -
calculateTextDecorations
@CheckReturnValue public static List<TextDecoration> calculateTextDecorations(Box box, int baseline, FSFontMetrics fm) -
calculateTextDecoration
@CheckReturnValue private static TextDecoration calculateTextDecoration(int baseline, FSFontMetrics fm) -
alignInlineContent
private static void alignInlineContent(LayoutContext c, Box box, float ascent, float descent, VerticalAlignContext vaContext) -
getInitialMeasurements
private static InlineBoxMeasurements getInitialMeasurements(LayoutContext c, Box container, FSFontMetrics strutM) -
positionInlineChildrenVertically
private static void positionInlineChildrenVertically(LayoutContext c, InlineLayoutBox current, VerticalAlignContext vaContext) -
positionInlineContentVertically
private static void positionInlineContentVertically(LayoutContext c, VerticalAlignContext vaContext, Box child) -
saveLine
private static void saveLine(LineBox current, LayoutContext c, BlockBox block, int minHeight, int maxAvailableWidth, List<FloatLayoutResult> pendingFloats, boolean hasFirstLinePCs, List<Layer> pendingInlineLayers, @Nullable MarkerData markerData, int contentStart, boolean alwaysBreak) -
alignLine
-
finishPendingInlineLayers
-
layoutText
private static InlineText layoutText(LayoutContext c, CalculatedStyle style, int remainingWidth, LineBreakContext lbContext, boolean needFirstLetter) -
processOutOfFlowContent
private static int processOutOfFlowContent(LayoutContext c, LineBox current, BlockBox block, int available, List<FloatLayoutResult> pendingFloats) -
hasTrimmableLeadingSpace
private static boolean hasTrimmableLeadingSpace(LineBox line, CalculatedStyle style, LineBreakContext lbContext, boolean zeroWidthInlineBlock) -
trimLeadingSpace
-
newLine
-
newLine
-
addOpenInlineBoxes
private static @Nullable InlineLayoutBox addOpenInlineBoxes(LayoutContext c, LineBox line, List<InlineBox> openParents, int cbWidth, Map<InlineBox, InlineLayoutBox> iBMap)
-