Package org.xhtmlrenderer.render
Class BlockBox
java.lang.Object
org.xhtmlrenderer.render.Box
org.xhtmlrenderer.render.BlockBox
- All Implemented Interfaces:
InlinePaintable
,Styleable
- Direct Known Subclasses:
AnonymousBlockBox
,MarginBox
,TableBox
,TableCellBox
,TableRowBox
,TableSectionBox
,ViewportBox
A block box as defined in the CSS spec. It also provides a base class for
other kinds of block content (for example table rows or cells).
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
private static class
private static class
static enum
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
private BlockBox.ContentType
private int
private boolean
private @Nullable CascadedStyle
private @Nullable CascadedStyle
private @Nullable FloatedBoxData
private boolean
private int
private @Nullable MarkerData
private int
private boolean
private int
private boolean
private boolean
private @Nullable BlockBox.MarginCollapseResult
private @Nullable PersistentBFC
private @Nullable ReplacedElement
private @Nullable Box
private boolean
protected static final int
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
BlockBox()
BlockBox
(@Nullable Element element, @Nullable CalculatedStyle style, boolean anonymous) -
Method Summary
Modifier and TypeMethodDescriptionprivate void
private void
protected void
appendPositioningInfo
(StringBuilder result) private void
private void
int
void
void
protected void
calcChildPaintingInfo
(CssContext c, PaintingInfo result, boolean useCache) private void
void
protected void
calcDimensions
(LayoutContext c, int cssWidth) private int
private void
protected int
void
int
protected void
calcLayoutHeight
(LayoutContext c, BorderPropertySet border, RectPropertySet margin, RectPropertySet padding) private void
calcMinMaxCSSMinMaxWidth
(LayoutContext c, RectPropertySet margin, BorderPropertySet border, RectPropertySet padding) void
private void
private void
private int
private int
private int
private void
boolean
private void
collapseBottomMargin
(LayoutContext c, boolean calculationRoot, BlockBox.MarginCollapseResult result) private void
private void
private void
collapseTopMargin
(LayoutContext c, boolean calculationRoot, BlockBox.MarginCollapseResult result) copyOf()
private MarkerData
dump
(LayoutContext c, String indent, Box.Dump which) void
private LineBox
private LineBox
private void
findLastNthLineBox
(int count) int
findOffset
(Box box) private ReplacedElement
protected int
@NonNull BlockBox.ContentType
int
private int
protected int
protected int
private int
private int
private int
private int
protected int
protected int
getCSSWidth
(CssContext c, boolean shrinkingToFit) protected String
@Nullable FloatedBoxData
@Nullable LineBox
int
@Nullable MarkerData
int
int
private BlockBox
getNextCollapsableSibling
(BlockBox.MarginCollapseResult collapsedMargin) protected int
getPaintingClipEdge
(CssContext cssCtx) @Nullable PersistentBFC
@Nullable ReplacedElement
@Nullable Box
private MarkerData
void
initStaticPos
(LayoutContext c, BlockBox parent, int childOffset) protected boolean
boolean
boolean
boolean
boolean
private boolean
protected boolean
boolean
boolean
boolean
isInline()
protected boolean
boolean
protected boolean
protected boolean
boolean
boolean
private boolean
boolean
private boolean
private boolean
boolean
protected boolean
boolean
private boolean
private void
void
void
layout
(LayoutContext c, int contentStart) protected void
layoutChildren
(LayoutContext c, int contentStart) protected void
layoutInlineChildren
(LayoutContext c, int contentStart, int breakAtLine, boolean tryAgain) private MarkerData.GlyphMarker
makeGlyphMarker
(StrutMetrics strutMetrics) private @Nullable MarkerData.ImageMarker
makeImageMarker
(LayoutContext c, StrutMetrics structMetrics, String image) private MarkerData.TextMarker
makeTextMarker
(LayoutContext c, IdentValue listStyle) void
void
void
void
positionAbsolute
(CssContext cssCtx, BlockBox.Position direction) void
protected void
propagateExtraSpace
(LayoutContext c, ContentLimitContainer parentContainer, ContentLimitContainer currentContainer, int extraTop, int extraBottom) private void
void
protected void
resolveAutoMargins
(LayoutContext c, int cssWidth, RectPropertySet padding, BorderPropertySet border) private void
satisfyWidowsAndOrphans
(LayoutContext c, int contentStart, boolean tryAgain) void
setBottomMarginCalculated
(boolean bottomMarginCalculated) void
setChildrenContentType
(BlockBox.ContentType contentType) protected void
setChildrenHeight
(int childrenHeight) private void
setCollapsedBottomMargin
(LayoutContext c, RectPropertySet margin, BlockBox.MarginCollapseResult collapsedMargin) protected void
setDimensionsCalculated
(boolean dimensionsCalculated) void
setFirstLetterStyle
(CascadedStyle firstLetterStyle) void
setFirstLineStyle
(CascadedStyle firstLineStyle) void
setFloatedBoxData
(@Nullable FloatedBoxData floatedBoxData) void
setFromCaptionedTable
(boolean fromTable) final void
setInlineContent
(List<Styleable> inlineContent) void
setListCounter
(int listCounter) protected void
setMaxWidth
(int maxWidth) protected void
setMinMaxCalculated
(boolean minMaxCalculated) protected void
setMinWidth
(int minWidth) void
setNeedPageClear
(boolean needPageClear) protected void
setNeedShrinkToFitCalculation
(boolean needShrinkToFitCalculation) void
setPersistentBFC
(PersistentBFC persistentBFC) void
setReplacedElement
(@Nullable ReplacedElement replacedElement) void
setStaticEquivalent
(Box staticEquivalent) void
setTopMarginCalculated
(boolean topMarginCalculated) void
void
styleText
(LayoutContext c, CalculatedStyle style) toString()
Methods inherited from class org.xhtmlrenderer.render.Box
addAllChildren, addChild, addChildForLayout, analyzePageBreaks, appendPosition, appendSize, calcPaintingInfo, clearSelection, collectText, connectChildrenToCurrentLayer, crossesPageBreak, detach, dumpBoxes, exportPageBoxText, exportText, find, forcePageBreakAfter, forcePageBreakBefore, getAbsX, getAbsY, getBorder, getBorderEdge, getBorderSides, getBoxDimensions, getChild, getChildCount, getChildren, getChildrenClipEdge, getContainingBlock, getContainingBlockWidth, getContainingLayer, getContentAreaEdge, getContentWidth, getEffBackgroundColor, getEffectiveWidth, getElement, getElementBoxes, getHeight, getIndex, getLayer, getLeftMBP, getMargin, getMarginBorderPadding, getMarginEdge, getMarginEdge, getNext, getNextSibling, getPadding, getPaddingEdge, getPaddingWidth, getPaintingBorderEdge, getPaintingInfo, getPaintingPaddingEdge, getParent, getPrevious, getPreviousSibling, getPseudoElementOrClass, getRelativeOffset, getRestyleTarget, getRightMBP, getState, getStyle, getStyleMargin, getStyleMarginNoCache, getTx, getTy, getWidth, getX, getY, initContainingLayer, intersects, isAnonymous, isBody, isContainedInMarginBox, isInDocumentFlow, isInitialContainingBlock, isMarginAreaRoot, isRoot, isStyled, moveIfGreater, paintBackground, paintBorder, paintRootElementBackground, positionRelative, removeAllChildren, removeChild, removeChild, resetChildren, resetChildren, resetTopMargin, restyle, restyleChildren, selectAll, setAbsX, setAbsY, setBoxDimensions, setContainingBlock, setContainingLayer, setContentWidth, setElement, setHeight, setIndex, setLayer, setLeftMBP, setMarginBottom, setMarginLeft, setMarginRight, setMarginTop, setParent, setPseudoElementOrClass, setRightMBP, setState, setStyle, setTx, setTy, setX, setY
-
Field Details
-
NO_BASELINE
protected static final int NO_BASELINE- See Also:
-
_markerData
-
_listCounter
private int _listCounter -
_persistentBFC
-
_staticEquivalent
-
_needPageClear
private boolean _needPageClear -
_replacedElement
-
_childrenContentType
-
_inlineContent
-
_topMarginCalculated
private boolean _topMarginCalculated -
_bottomMarginCalculated
private boolean _bottomMarginCalculated -
_pendingCollapseCalculation
-
_minWidth
private int _minWidth -
_maxWidth
private int _maxWidth -
_minMaxCalculated
private boolean _minMaxCalculated -
_dimensionsCalculated
private boolean _dimensionsCalculated -
_needShrinkToFitCalculation
private boolean _needShrinkToFitCalculation -
_firstLineStyle
-
_firstLetterStyle
-
_floatedBoxData
-
_childrenHeight
private int _childrenHeight -
_fromCaptionedTable
private boolean _fromCaptionedTable
-
-
Constructor Details
-
BlockBox
protected BlockBox() -
BlockBox
-
-
Method Details
-
copyOf
-
getExtraBoxDescription
-
toString
-
appendPositioningInfo
-
dump
-
paintListMarker
-
getPaintingClipEdge
- Overrides:
getPaintingClipEdge
in classBox
-
paintInline
- Specified by:
paintInline
in interfaceInlinePaintable
-
isInline
public boolean isInline() -
getLineBox
-
paintDebugOutline
-
getMarkerData
-
initMarkerData
-
createMarkerData
-
makeGlyphMarker
-
makeImageMarker
@CheckReturnValue private @Nullable MarkerData.ImageMarker makeImageMarker(LayoutContext c, StrutMetrics structMetrics, String image) -
makeTextMarker
-
getListCounter
public int getListCounter() -
setListCounter
public void setListCounter(int listCounter) -
getPersistentBFC
-
setPersistentBFC
-
getStaticEquivalent
-
setStaticEquivalent
-
isReplaced
public boolean isReplaced() -
calcCanvasLocation
public void calcCanvasLocation()- Specified by:
calcCanvasLocation
in classBox
-
calcInitialFloatedCanvasLocation
-
calcChildLocations
public void calcChildLocations()- Overrides:
calcChildLocations
in classBox
-
isNeedPageClear
public boolean isNeedPageClear() -
setNeedPageClear
public void setNeedPageClear(boolean needPageClear) -
alignToStaticEquivalent
private void alignToStaticEquivalent() -
positionAbsolute
-
positionAbsoluteOnPage
-
getReplacedElement
-
setReplacedElement
-
reset
-
calcPinnedContentWidth
-
calcPinnedHeight
-
resolveAutoMargins
protected void resolveAutoMargins(LayoutContext c, int cssWidth, RectPropertySet padding, BorderPropertySet border) -
calcEffPageRelativeWidth
-
calcDimensions
-
calcDimensions
-
calcClearance
-
calcExtraPageClearance
-
addBoxID
-
layout
-
layout
-
isAllowHeightToShrink
protected boolean isAllowHeightToShrink() -
getPageClearance
protected int getPageClearance() -
calcLayoutHeight
protected void calcLayoutHeight(LayoutContext c, BorderPropertySet border, RectPropertySet margin, RectPropertySet padding) -
calcShrinkToFitWidthIfNeeded
-
applyCSSMinMaxWidth
-
applyCSSMinMaxHeight
-
ensureChildren
-
layoutChildren
-
layoutInlineChildren
protected void layoutInlineChildren(LayoutContext c, int contentStart, int breakAtLine, boolean tryAgain) -
justifyText
private void justifyText() -
satisfyWidowsAndOrphans
-
getChildrenContentType
-
setChildrenContentType
-
getInlineContent
-
setInlineContent
-
isSkipWhenCollapsingMargins
protected boolean isSkipWhenCollapsingMargins() -
isMayCollapseMarginsWithChildren
protected boolean isMayCollapseMarginsWithChildren() -
collapseMargins
-
setCollapsedBottomMargin
private void setCollapsedBottomMargin(LayoutContext c, RectPropertySet margin, BlockBox.MarginCollapseResult collapsedMargin) -
getNextCollapsableSibling
-
collapseTopMargin
private void collapseTopMargin(LayoutContext c, boolean calculationRoot, BlockBox.MarginCollapseResult result) -
collapseBottomMargin
private void collapseBottomMargin(LayoutContext c, boolean calculationRoot, BlockBox.MarginCollapseResult result) -
isNoTopPaddingOrBorder
-
isNoBottomPaddingOrBorder
-
collapseEmptySubtreeMargins
-
isVerticalMarginsAdjoin
-
isTopMarginCalculated
public boolean isTopMarginCalculated() -
setTopMarginCalculated
public void setTopMarginCalculated(boolean topMarginCalculated) -
isBottomMarginCalculated
public boolean isBottomMarginCalculated() -
setBottomMarginCalculated
public void setBottomMarginCalculated(boolean bottomMarginCalculated) -
getCSSWidth
-
getCSSWidth
-
getCSSFitToWidth
-
getCSSHeight
-
isAutoHeight
public boolean isAutoHeight() -
getCSSMinWidth
-
getCSSMaxWidth
-
getCSSMinHeight
-
getCSSMaxHeight
-
getContainingBlockCSSHeight
-
calcShrinkToFitWidth
-
getAvailableWidth
-
isFixedWidthAdvisoryOnly
protected boolean isFixedWidthAdvisoryOnly() -
recalculateMargin
-
calcMinMaxWidth
-
fitReplacedElement
-
calcMinMaxCSSMinMaxWidth
private void calcMinMaxCSSMinMaxWidth(LayoutContext c, RectPropertySet margin, BorderPropertySet border, RectPropertySet padding) -
calcMinMaxWidthBlockChildren
-
calcMinMaxWidthInlineChildren
-
getMaxWidth
public int getMaxWidth() -
setMaxWidth
protected void setMaxWidth(int maxWidth) -
getMinWidth
public int getMinWidth() -
setMinWidth
protected void setMinWidth(int minWidth) -
styleText
-
styleText
-
calcChildPaintingInfo
- Overrides:
calcChildPaintingInfo
in classBox
-
getFirstLetterStyle
-
setFirstLetterStyle
-
getFirstLineStyle
-
setFirstLineStyle
-
isMinMaxCalculated
protected boolean isMinMaxCalculated() -
setMinMaxCalculated
protected void setMinMaxCalculated(boolean minMaxCalculated) -
setDimensionsCalculated
protected void setDimensionsCalculated(boolean dimensionsCalculated) -
isDimensionsCalculated
private boolean isDimensionsCalculated() -
setNeedShrinkToFitCalculation
protected void setNeedShrinkToFitCalculation(boolean needShrinkToFitCalculation) -
isNeedShrinkToFitCalculation
private boolean isNeedShrinkToFitCalculation() -
initStaticPos
-
calcBaseline
-
calcInitialBreakAtLine
-
isCurrentBreakAtLineContext
-
calcBreakAtLineContext
-
calcInlineBaseline
-
findOffset
-
findLastNthLineBox
-
findLastLineBox
-
findLastLineBox
-
findFirstLineBox
-
isNeedsKeepWithInline
-
isFloated
public boolean isFloated() -
getFloatedBoxData
-
setFloatedBoxData
-
getChildrenHeight
public int getChildrenHeight() -
setChildrenHeight
protected void setChildrenHeight(int childrenHeight) -
isFromCaptionedTable
public boolean isFromCaptionedTable() -
setFromCaptionedTable
public void setFromCaptionedTable(boolean fromTable) -
isInlineBlock
protected boolean isInlineBlock()- Overrides:
isInlineBlock
in classBox
-
isInMainFlow
public boolean isInMainFlow() -
isContainsInlineContent
-
checkPageContext
-
isNeedsClipOnPaint
-
propagateExtraSpace
protected void propagateExtraSpace(LayoutContext c, ContentLimitContainer parentContainer, ContentLimitContainer currentContainer, int extraTop, int extraBottom)
-