Package com.openhtmltopdf.render
Class InlineLayoutBox
- java.lang.Object
-
- com.openhtmltopdf.render.Box
-
- com.openhtmltopdf.render.InlineLayoutBox
-
- All Implemented Interfaces:
InlinePaintable
,Styleable
,DisplayListItem
public class InlineLayoutBox extends Box implements InlinePaintable
ABox
which contains the portion of an inline element layed out on a single line. It may contain content from severalInlineBox
objects if the original inline element was interrupted by nested content. Unlike other boxes, its children may be eitherBox
objects (for example, a box withdisplay: inline-block
) orInlineText
objects. For this reason, it's children are not stored in thechildren
property, but instead stored in theinlineChildren
property.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.openhtmltopdf.render.Box
Box.ChildIteratorOfType<T>
-
-
Field Summary
Fields Modifier and Type Field Description private int
_baseline
private int
_containingBlockWidth
private boolean
_endsHere
private java.util.List<java.lang.Object>
_inlineChildren
private int
_inlineWidth
private boolean
_pending
private boolean
_startsHere
private java.util.List<TextDecoration>
_textDecorations
-
Fields inherited from class com.openhtmltopdf.render.Box
CHILDREN_FLUX, DONE, DUMP_LAYOUT, DUMP_RENDER, FLUX, LINE_SEPARATOR, NOTHING
-
-
Constructor Summary
Constructors Modifier Constructor Description private
InlineLayoutBox()
InlineLayoutBox(LayoutContext c, org.w3c.dom.Element elem, CalculatedStyle style, int cbWidth)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addAllChildren(java.util.List<? super Box> list, Layer layer)
private AnonymousBlockBox
addFollowingBlockBoxes(BlockBox container, java.util.List<Box> result)
void
addInlineChild(LayoutContext c, java.lang.Object child)
void
addInlineChild(LayoutContext c, java.lang.Object child, boolean callUnmarkPending)
private void
addToContentList(java.util.List<Box> list)
float
adjustHorizontalPosition(JustificationInfo info, float adjust)
float
adjustHorizontalPositionRTL(JustificationInfo info, float adjust)
void
calcCanvasLocation()
void
calcChildLocations()
protected void
calcChildPaintingInfo(CssContext c, PaintingInfo result, boolean useCache)
void
calculateHeight(LayoutContext c)
void
calculateTextDecoration(LayoutContext c)
void
collectText(RenderingContext c, java.lang.StringBuilder buffer)
void
connectChildrenToCurrentLayer(LayoutContext c)
private boolean
containsEnd(java.util.List<Box> result)
InlineLayoutBox
copyOf()
void
countJustifiableChars(CharCounts counts)
java.lang.String
dump(LayoutContext c, java.lang.String indent, int which)
Box
find(CssContext cssCtx, int absX, int absY, boolean findAnonymous)
InlineText
findTrailingText()
int
getBaseline()
java.awt.Rectangle
getBorderEdge(int left, int top, CssContext cssCtx)
int
getBorderSides()
int
getContainingBlockWidth()
java.awt.Rectangle
getContentAreaEdge(int left, int top, CssContext cssCtx)
int
getEffectiveWidth()
java.util.List<Box>
getElementBoxes(org.w3c.dom.Element elem)
java.util.List<Box>
getElementWithContent()
java.lang.Object
getInlineChild(int i)
int
getInlineChildCount()
java.util.List<java.lang.Object>
getInlineChildren()
EitherBox, including InlineLayoutBox
orInlineText
objects.int
getInlineWidth()
int
getInlineWidth(CssContext cssCtx)
int
getLeftMarginBorderPadding(CssContext cssCtx)
LineBox
getLineBox()
java.awt.Rectangle
getMarginEdge(int left, int top, CssContext cssCtx, int tx, int ty)
protected Box
getNext(Box child)
protected Box
getPrevious(Box child)
int
getRightMarginPaddingBorder(CssContext cssCtx)
java.util.List<TextDecoration>
getTextDecorations()
boolean
hasNonTextContent(CssContext c)
boolean
intersectsInlineBlocks(CssContext cssCtx, java.awt.Shape clip)
boolean
isAllTextItems(CssContext c)
boolean
isContainsVisibleContent()
private boolean
isEndingBox(Box b)
boolean
isEndsHere()
boolean
isPending()
boolean
isStartsHere()
void
lookForDynamicFunctions(RenderingContext c)
void
paintDebugOutline(RenderingContext c)
void
paintInline(RenderingContext c)
void
paintSelection(RenderingContext c)
java.awt.Dimension
positionRelative(CssContext cssCtx)
void
prunePending(LayoutContext c)
boolean
removeChild(int i)
Removes child by index and adjusts the index of subsequent children.boolean
removeChild(Box child)
Removes a child box if it is indeed a child and adjusts the index of subsequent children.protected void
resetChildren(LayoutContext c)
void
setBaseline(int baseline)
void
setContainingBlockWidth(int containingBlockWidth)
void
setEndsHere(boolean endsHere)
void
setInlineWidth(int inlineWidth)
void
setPending(boolean b)
void
setStartsHere(boolean startsHere)
void
setTextDecorations(java.util.List<TextDecoration> textDecoration)
java.lang.String
toString()
void
unmarkPending(LayoutContext c)
-
Methods inherited from class com.openhtmltopdf.render.Box
addAllChildren, addChild, addChildForLayout, analyzePageBreaks, ancestors, ancestorsWhile, calcPaintingInfo, crossesPageBreak, detach, dumpBoxes, exportPageBoxText, exportText, findAncestor, findColumnBreakOpportunities, forcePageBreakAfter, forcePageBreakBefore, forcePageBreakBefore, getAbsoluteClipBox, getAbsX, getAbsY, getAccessibilityObject, getBorder, getBorderBox, getBorderBoxHeight, getBorderBoxWidth, getBoxDimensions, getChild, getChildCount, getChildIterator, getChildIteratorOfType, getChildren, getChildrenClipEdge, getClipBox, getContainingBlock, getContainingLayer, getContentWidth, getDocumentParent, getEffBackgroundColor, getElement, getHeight, getIndex, getLayer, getLeftMBP, getMargin, getMarginBorderPadding, getMarginEdge, getNextSibling, getPadding, getPaddingEdge, getPaddingWidth, getPaintingBorderEdge, getPaintingClipEdge, getPaintingInfo, getPaintingPaddingEdge, getParent, getParentClipBox, getPreviousSibling, getPseudoElementOrClass, getRelativeOffset, getRightMBP, getState, getStyle, getStyleMargin, getStyleMargin, getTx, getTy, getWidth, getX, getY, hasRootElementBackground, initContainingLayer, intersects, isAnonymous, isBody, isContainedInMarginBox, isFirstChild, isInDocumentFlow, isInitialContainingBlock, isInlineBlock, isMarginAreaRoot, isRoot, isStyled, isTerminalColumnBreak, moveIfGreater, paintBackground, paintBorder, paintRootElementBackground, removeAllChildren, reset, resetChildren, resetTopMargin, rootBox, setAbsX, setAbsY, setAccessiblityObject, setAnonymous, setBorderBoxHeight, setBorderBoxWidth, setBoxDimensions, setContainingBlock, setContainingLayer, setContentWidth, setElement, setHeight, setIndex, setLayer, setLeftMBP, setMarginBottom, setMarginLeft, setMarginRight, setMarginTop, setParent, setPseudoElementOrClass, setRelativeOffset, setRightMBP, setState, setStyle, setTx, setTy, setX, setY, stateToString
-
-
-
-
Field Detail
-
_baseline
private int _baseline
-
_startsHere
private boolean _startsHere
-
_endsHere
private boolean _endsHere
-
_inlineChildren
private java.util.List<java.lang.Object> _inlineChildren
-
_pending
private boolean _pending
-
_inlineWidth
private int _inlineWidth
-
_textDecorations
private java.util.List<TextDecoration> _textDecorations
-
_containingBlockWidth
private int _containingBlockWidth
-
-
Constructor Detail
-
InlineLayoutBox
public InlineLayoutBox(LayoutContext c, org.w3c.dom.Element elem, CalculatedStyle style, int cbWidth)
-
InlineLayoutBox
private InlineLayoutBox()
-
-
Method Detail
-
copyOf
public InlineLayoutBox copyOf()
-
calculateHeight
public void calculateHeight(LayoutContext c)
-
getBaseline
public int getBaseline()
-
setBaseline
public void setBaseline(int baseline)
-
getInlineChildCount
public int getInlineChildCount()
-
addInlineChild
public void addInlineChild(LayoutContext c, java.lang.Object child)
-
addInlineChild
public void addInlineChild(LayoutContext c, java.lang.Object child, boolean callUnmarkPending)
-
getInlineChildren
public java.util.List<java.lang.Object> getInlineChildren()
EitherBox, including InlineLayoutBox
orInlineText
objects.
-
getInlineChild
public java.lang.Object getInlineChild(int i)
-
getInlineWidth
public int getInlineWidth(CssContext cssCtx)
-
prunePending
public void prunePending(LayoutContext c)
-
isEndsHere
public boolean isEndsHere()
-
setEndsHere
public void setEndsHere(boolean endsHere)
-
isStartsHere
public boolean isStartsHere()
-
setStartsHere
public void setStartsHere(boolean startsHere)
-
isPending
public boolean isPending()
-
setPending
public void setPending(boolean b)
-
unmarkPending
public void unmarkPending(LayoutContext c)
-
connectChildrenToCurrentLayer
public void connectChildrenToCurrentLayer(LayoutContext c)
- Overrides:
connectChildrenToCurrentLayer
in classBox
-
paintSelection
public void paintSelection(RenderingContext c)
-
paintInline
public void paintInline(RenderingContext c)
- Specified by:
paintInline
in interfaceInlinePaintable
-
hasNonTextContent
public boolean hasNonTextContent(CssContext c)
- Overrides:
hasNonTextContent
in classBox
-
isAllTextItems
public boolean isAllTextItems(CssContext c)
-
getBorderSides
public int getBorderSides()
- Overrides:
getBorderSides
in classBox
-
getBorderEdge
public java.awt.Rectangle getBorderEdge(int left, int top, CssContext cssCtx)
- Overrides:
getBorderEdge
in classBox
-
getMarginEdge
public java.awt.Rectangle getMarginEdge(int left, int top, CssContext cssCtx, int tx, int ty)
- Overrides:
getMarginEdge
in classBox
-
getContentAreaEdge
public java.awt.Rectangle getContentAreaEdge(int left, int top, CssContext cssCtx)
- Overrides:
getContentAreaEdge
in classBox
-
getLeftMarginBorderPadding
public int getLeftMarginBorderPadding(CssContext cssCtx)
-
getRightMarginPaddingBorder
public int getRightMarginPaddingBorder(CssContext cssCtx)
-
getInlineWidth
public int getInlineWidth()
-
setInlineWidth
public void setInlineWidth(int inlineWidth)
-
isContainsVisibleContent
public boolean isContainsVisibleContent()
-
intersectsInlineBlocks
public boolean intersectsInlineBlocks(CssContext cssCtx, java.awt.Shape clip)
-
getTextDecorations
public java.util.List<TextDecoration> getTextDecorations()
-
setTextDecorations
public void setTextDecorations(java.util.List<TextDecoration> textDecoration)
-
addToContentList
private void addToContentList(java.util.List<Box> list)
-
getLineBox
public LineBox getLineBox()
-
getElementWithContent
public java.util.List<Box> getElementWithContent()
-
addFollowingBlockBoxes
private AnonymousBlockBox addFollowingBlockBoxes(BlockBox container, java.util.List<Box> result)
-
isEndingBox
private boolean isEndingBox(Box b)
-
containsEnd
private boolean containsEnd(java.util.List<Box> result)
-
getElementBoxes
public java.util.List<Box> getElementBoxes(org.w3c.dom.Element elem)
- Overrides:
getElementBoxes
in classBox
-
positionRelative
public java.awt.Dimension positionRelative(CssContext cssCtx)
- Overrides:
positionRelative
in classBox
-
paintDebugOutline
public void paintDebugOutline(RenderingContext c)
-
resetChildren
protected void resetChildren(LayoutContext c)
- Overrides:
resetChildren
in classBox
-
removeChild
public boolean removeChild(Box child)
Removes a child box if it is indeed a child and adjusts the index of subsequent children. Returns whether this was a child.- Overrides:
removeChild
in classBox
-
removeChild
public boolean removeChild(int i)
Removes child by index and adjusts the index of subsequent children. Returns true if this box has children, throws if the index is out-of-bounds.
IMPORTANT: This method must be kept in sync withBox.removeChild(Box)
- Overrides:
removeChild
in classBox
-
getPrevious
protected Box getPrevious(Box child)
- Overrides:
getPrevious
in classBox
-
calcCanvasLocation
public void calcCanvasLocation()
- Specified by:
calcCanvasLocation
in classBox
-
calcChildLocations
public void calcChildLocations()
- Overrides:
calcChildLocations
in classBox
-
calcChildPaintingInfo
protected void calcChildPaintingInfo(CssContext c, PaintingInfo result, boolean useCache)
- Overrides:
calcChildPaintingInfo
in classBox
-
lookForDynamicFunctions
public void lookForDynamicFunctions(RenderingContext c)
-
findTrailingText
public InlineText findTrailingText()
-
calculateTextDecoration
public void calculateTextDecoration(LayoutContext c)
-
find
public Box find(CssContext cssCtx, int absX, int absY, boolean findAnonymous)
-
getContainingBlockWidth
public int getContainingBlockWidth()
- Overrides:
getContainingBlockWidth
in classBox
-
setContainingBlockWidth
public void setContainingBlockWidth(int containingBlockWidth)
-
dump
public java.lang.String dump(LayoutContext c, java.lang.String indent, int which)
-
collectText
public void collectText(RenderingContext c, java.lang.StringBuilder buffer)
- Overrides:
collectText
in classBox
-
countJustifiableChars
public void countJustifiableChars(CharCounts counts)
-
adjustHorizontalPosition
public float adjustHorizontalPosition(JustificationInfo info, float adjust)
-
adjustHorizontalPositionRTL
public float adjustHorizontalPositionRTL(JustificationInfo info, float adjust)
-
getEffectiveWidth
public int getEffectiveWidth()
- Overrides:
getEffectiveWidth
in classBox
-
-