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.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static InlineLayoutBox
addFirstLetterBox
(LayoutContext c, LineBox current, InlineLayoutBox currentIB, LineBreakContext lbContext, int maxAvailableWidth, int remainingWidth) private static InlineLayoutBox
addOpenInlineBoxes
(LayoutContext c, LineBox line, List<InlineBox> openParents, int cbWidth, Map<InlineBox, InlineLayoutBox> iBMap) private static void
alignInlineContent
(LayoutContext c, Box box, float ascent, float descent, VerticalAlignContext vaContext) private static void
alignLine
(LayoutContext c, LineBox current, int maxAvailableWidth) private static InlineBoxMeasurements
calculateInlineMeasurements
(LayoutContext c, InlineLayoutBox iB, VerticalAlignContext vaContext) private static TextDecoration
calculateTextDecoration
(int baseline, FSFontMetrics fm) static List<TextDecoration>
calculateTextDecorations
(Box box, int baseline, FSFontMetrics fm) static StrutMetrics
createDefaultStrutMetrics
(LayoutContext c, Box container) private static void
finishPendingInlineLayers
(LayoutContext c, List<Layer> layers) private static InlineBoxMeasurements
getInitialMeasurements
(LayoutContext c, Box container, FSFontMetrics strutM) private static boolean
hasTrimmableLeadingSpace
(LineBox line, CalculatedStyle style, LineBreakContext lbContext, boolean zeroWidthInlineBlock) private static boolean
isAlwaysBreak
(LayoutContext c, BlockBox parent, int breakAtLine, int lineOffset) static void
layoutContent
(LayoutContext c, BlockBox box, int initialY, int breakAtLine) private static void
layoutInlineBlockContent
(LayoutContext c, BlockBox containingBlock, BlockBox inlineBlock, int initialY) private static InlineText
layoutText
(LayoutContext c, CalculatedStyle style, int remainingWidth, LineBreakContext lbContext, boolean needFirstLetter) private static void
moveInlineContents
(InlineLayoutBox box, int ty) private static void
moveLineContents
(LineBox current, int ty) private static LineBox
newLine
(LayoutContext c, int y, Box box) private static LineBox
newLine
(LayoutContext c, LineBox previousLine, Box box) static int
positionHorizontally
(CssContext c, Box current, int start) private static int
positionHorizontally
(CssContext c, InlineLayoutBox current, int start) private static void
positionInlineBlockVertically
(LayoutContext c, VerticalAlignContext vaContext, BlockBox inlineBlock) private static void
positionInlineChildrenVertically
(LayoutContext c, InlineLayoutBox current, VerticalAlignContext vaContext) private static void
positionInlineContentVertically
(LayoutContext c, VerticalAlignContext vaContext, Box child) private static void
positionInlineVertically
(LayoutContext c, VerticalAlignContext vaContext, InlineLayoutBox iB) private static void
positionVertically
(LayoutContext c, Box container, LineBox current, MarkerData markerData) private static int
processOutOfFlowContent
(LayoutContext c, LineBox current, BlockBox block, int available, List<FloatLayoutResult> pendingFloats) private static void
saveLine
(LineBox current, LayoutContext c, BlockBox block, int minHeight, int maxAvailableWidth, List<FloatLayoutResult> pendingFloats, boolean hasFirstLinePCs, List<Layer> pendingInlineLayers, MarkerData markerData, int contentStart, boolean alwaysBreak) private static void
trimLeadingSpace
(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, 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
@Nonnull @CheckReturnValue public static List<TextDecoration> calculateTextDecorations(Box box, int baseline, FSFontMetrics fm) -
calculateTextDecoration
-
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, 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 InlineLayoutBox addOpenInlineBoxes(LayoutContext c, LineBox line, List<InlineBox> openParents, int cbWidth, Map<InlineBox, InlineLayoutBox> iBMap)
-