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

public class BlockBox extends Box implements InlinePaintable
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).
  • Field Details

    • NO_BASELINE

      protected static final int NO_BASELINE
      See Also:
    • _markerData

      private @Nullable MarkerData _markerData
    • _listCounter

      private int _listCounter
    • _persistentBFC

      private @Nullable PersistentBFC _persistentBFC
    • _staticEquivalent

      private @Nullable Box _staticEquivalent
    • _needPageClear

      private boolean _needPageClear
    • _replacedElement

      private @Nullable ReplacedElement _replacedElement
    • _childrenContentType

      private BlockBox.ContentType _childrenContentType
    • _inlineContent

      private @Nullable List<Styleable> _inlineContent
    • _topMarginCalculated

      private boolean _topMarginCalculated
    • _bottomMarginCalculated

      private boolean _bottomMarginCalculated
    • _pendingCollapseCalculation

      private @Nullable BlockBox.MarginCollapseResult _pendingCollapseCalculation
    • _minWidth

      private int _minWidth
    • _maxWidth

      private int _maxWidth
    • _minMaxCalculated

      private boolean _minMaxCalculated
    • _dimensionsCalculated

      private boolean _dimensionsCalculated
    • _needShrinkToFitCalculation

      private boolean _needShrinkToFitCalculation
    • _firstLineStyle

      private @Nullable CascadedStyle _firstLineStyle
    • _firstLetterStyle

      private @Nullable CascadedStyle _firstLetterStyle
    • _floatedBoxData

      private @Nullable FloatedBoxData _floatedBoxData
    • _childrenHeight

      private int _childrenHeight
    • _fromCaptionedTable

      private boolean _fromCaptionedTable
  • Constructor Details

    • BlockBox

      protected BlockBox()
    • BlockBox

      public BlockBox(@Nullable Element element, @Nullable CalculatedStyle style, boolean anonymous)
  • Method Details

    • copyOf

      public BlockBox copyOf()
    • getExtraBoxDescription

      protected String getExtraBoxDescription()
    • toString

      public String toString()
      Overrides:
      toString in class Box
    • appendPositioningInfo

      protected void appendPositioningInfo(StringBuilder result)
    • dump

      public String dump(LayoutContext c, String indent, Box.Dump which)
      Specified by:
      dump in class Box
    • paintListMarker

      public void paintListMarker(RenderingContext c)
    • getPaintingClipEdge

      public Rectangle getPaintingClipEdge(CssContext cssCtx)
      Overrides:
      getPaintingClipEdge in class Box
    • paintInline

      public void paintInline(RenderingContext c)
      Specified by:
      paintInline in interface InlinePaintable
    • isInline

      public boolean isInline()
    • getLineBox

      public @Nullable LineBox getLineBox()
    • paintDebugOutline

      public void paintDebugOutline(RenderingContext c)
    • getMarkerData

      public @Nullable MarkerData getMarkerData()
    • initMarkerData

      @CheckReturnValue private MarkerData initMarkerData(LayoutContext c)
    • createMarkerData

      @CheckReturnValue private MarkerData createMarkerData(LayoutContext c)
    • makeGlyphMarker

      private MarkerData.GlyphMarker makeGlyphMarker(StrutMetrics strutMetrics)
    • makeImageMarker

      @CheckReturnValue private @Nullable MarkerData.ImageMarker makeImageMarker(LayoutContext c, StrutMetrics structMetrics, String image)
    • makeTextMarker

      private MarkerData.TextMarker makeTextMarker(LayoutContext c, IdentValue listStyle)
    • getListCounter

      public int getListCounter()
    • setListCounter

      public void setListCounter(int listCounter)
    • getPersistentBFC

      @CheckReturnValue public @Nullable PersistentBFC getPersistentBFC()
    • setPersistentBFC

      public void setPersistentBFC(PersistentBFC persistentBFC)
    • getStaticEquivalent

      @CheckReturnValue public @Nullable Box getStaticEquivalent()
    • setStaticEquivalent

      public void setStaticEquivalent(Box staticEquivalent)
    • isReplaced

      public boolean isReplaced()
    • calcCanvasLocation

      public void calcCanvasLocation()
      Specified by:
      calcCanvasLocation in class Box
    • calcInitialFloatedCanvasLocation

      public void calcInitialFloatedCanvasLocation(LayoutContext c)
    • calcChildLocations

      public void calcChildLocations()
      Overrides:
      calcChildLocations in class Box
    • isNeedPageClear

      public boolean isNeedPageClear()
    • setNeedPageClear

      public void setNeedPageClear(boolean needPageClear)
    • alignToStaticEquivalent

      private void alignToStaticEquivalent()
    • positionAbsolute

      public void positionAbsolute(CssContext cssCtx, BlockBox.Position direction)
    • positionAbsoluteOnPage

      public void positionAbsoluteOnPage(LayoutContext c)
    • getReplacedElement

      public @Nullable ReplacedElement getReplacedElement()
    • setReplacedElement

      public void setReplacedElement(@Nullable ReplacedElement replacedElement)
    • reset

      public void reset(LayoutContext c)
      Overrides:
      reset in class Box
    • calcPinnedContentWidth

      private int calcPinnedContentWidth(CssContext c)
    • calcPinnedHeight

      private int calcPinnedHeight(CssContext c)
    • resolveAutoMargins

      protected void resolveAutoMargins(LayoutContext c, int cssWidth, RectPropertySet padding, BorderPropertySet border)
    • calcEffPageRelativeWidth

      private int calcEffPageRelativeWidth(LayoutContext c)
    • calcDimensions

      public void calcDimensions(LayoutContext c)
    • calcDimensions

      protected void calcDimensions(LayoutContext c, int cssWidth)
    • calcClearance

      private void calcClearance(LayoutContext c)
    • calcExtraPageClearance

      private void calcExtraPageClearance(LayoutContext c)
    • addBoxID

      private void addBoxID(LayoutContext c)
    • layout

      public void layout(LayoutContext c)
    • layout

      public void layout(LayoutContext c, int contentStart)
    • isAllowHeightToShrink

      protected boolean isAllowHeightToShrink()
    • getPageClearance

      protected int getPageClearance()
    • calcLayoutHeight

      protected void calcLayoutHeight(LayoutContext c, BorderPropertySet border, RectPropertySet margin, RectPropertySet padding)
    • calcShrinkToFitWidthIfNeeded

      private void calcShrinkToFitWidthIfNeeded(LayoutContext c)
    • applyCSSMinMaxWidth

      private void applyCSSMinMaxWidth(CssContext c)
    • applyCSSMinMaxHeight

      private void applyCSSMinMaxHeight(CssContext c)
    • ensureChildren

      public void ensureChildren(LayoutContext c)
    • layoutChildren

      protected void layoutChildren(LayoutContext c, int contentStart)
    • layoutInlineChildren

      protected void layoutInlineChildren(LayoutContext c, int contentStart, int breakAtLine, boolean tryAgain)
    • justifyText

      private void justifyText()
    • satisfyWidowsAndOrphans

      private void satisfyWidowsAndOrphans(LayoutContext c, int contentStart, boolean tryAgain)
    • getChildrenContentType

      @CheckReturnValue public @NonNull BlockBox.ContentType getChildrenContentType()
    • setChildrenContentType

      public void setChildrenContentType(BlockBox.ContentType contentType)
    • getInlineContent

      public List<Styleable> getInlineContent()
    • setInlineContent

      public final void setInlineContent(List<Styleable> inlineContent)
    • isSkipWhenCollapsingMargins

      protected boolean isSkipWhenCollapsingMargins()
    • isMayCollapseMarginsWithChildren

      protected boolean isMayCollapseMarginsWithChildren()
    • collapseMargins

      private void collapseMargins(LayoutContext c)
    • setCollapsedBottomMargin

      private void setCollapsedBottomMargin(LayoutContext c, RectPropertySet margin, BlockBox.MarginCollapseResult collapsedMargin)
    • getNextCollapsableSibling

      private BlockBox getNextCollapsableSibling(BlockBox.MarginCollapseResult collapsedMargin)
    • collapseTopMargin

      private void collapseTopMargin(LayoutContext c, boolean calculationRoot, BlockBox.MarginCollapseResult result)
    • collapseBottomMargin

      private void collapseBottomMargin(LayoutContext c, boolean calculationRoot, BlockBox.MarginCollapseResult result)
    • isNoTopPaddingOrBorder

      private boolean isNoTopPaddingOrBorder(LayoutContext c)
    • isNoBottomPaddingOrBorder

      private boolean isNoBottomPaddingOrBorder(LayoutContext c)
    • collapseEmptySubtreeMargins

      private void collapseEmptySubtreeMargins(LayoutContext c, BlockBox.MarginCollapseResult result)
    • isVerticalMarginsAdjoin

      private boolean isVerticalMarginsAdjoin(LayoutContext c)
    • isTopMarginCalculated

      public boolean isTopMarginCalculated()
    • setTopMarginCalculated

      public void setTopMarginCalculated(boolean topMarginCalculated)
    • isBottomMarginCalculated

      public boolean isBottomMarginCalculated()
    • setBottomMarginCalculated

      public void setBottomMarginCalculated(boolean bottomMarginCalculated)
    • getCSSWidth

      protected int getCSSWidth(CssContext c)
    • getCSSWidth

      protected int getCSSWidth(CssContext c, boolean shrinkingToFit)
    • getCSSFitToWidth

      protected int getCSSFitToWidth(CssContext c)
    • getCSSHeight

      protected int getCSSHeight(CssContext c)
    • isAutoHeight

      public boolean isAutoHeight()
    • getCSSMinWidth

      private int getCSSMinWidth(CssContext c)
    • getCSSMaxWidth

      private int getCSSMaxWidth(CssContext c)
    • getCSSMinHeight

      private int getCSSMinHeight(CssContext c)
    • getCSSMaxHeight

      private int getCSSMaxHeight(CssContext c)
    • getContainingBlockCSSHeight

      private int getContainingBlockCSSHeight(CssContext c)
    • calcShrinkToFitWidth

      private int calcShrinkToFitWidth(LayoutContext c)
    • getAvailableWidth

      protected int getAvailableWidth(LayoutContext c)
    • isFixedWidthAdvisoryOnly

      protected boolean isFixedWidthAdvisoryOnly()
    • recalculateMargin

      private void recalculateMargin(LayoutContext c)
    • calcMinMaxWidth

      public void calcMinMaxWidth(LayoutContext c)
    • fitReplacedElement

      private ReplacedElement fitReplacedElement(LayoutContext c, ReplacedElement re)
    • calcMinMaxCSSMinMaxWidth

      private void calcMinMaxCSSMinMaxWidth(LayoutContext c, RectPropertySet margin, BorderPropertySet border, RectPropertySet padding)
    • calcMinMaxWidthBlockChildren

      private void calcMinMaxWidthBlockChildren(LayoutContext c)
    • calcMinMaxWidthInlineChildren

      private void calcMinMaxWidthInlineChildren(LayoutContext c)
    • getMaxWidth

      public int getMaxWidth()
    • setMaxWidth

      protected void setMaxWidth(int maxWidth)
    • getMinWidth

      public int getMinWidth()
    • setMinWidth

      protected void setMinWidth(int minWidth)
    • styleText

      public void styleText(LayoutContext c)
    • styleText

      public void styleText(LayoutContext c, CalculatedStyle style)
    • calcChildPaintingInfo

      protected void calcChildPaintingInfo(CssContext c, PaintingInfo result, boolean useCache)
      Overrides:
      calcChildPaintingInfo in class Box
    • getFirstLetterStyle

      public CascadedStyle getFirstLetterStyle()
    • setFirstLetterStyle

      public void setFirstLetterStyle(CascadedStyle firstLetterStyle)
    • getFirstLineStyle

      public CascadedStyle getFirstLineStyle()
    • setFirstLineStyle

      public void setFirstLineStyle(CascadedStyle firstLineStyle)
    • 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

      public void initStaticPos(LayoutContext c, BlockBox parent, int childOffset)
    • calcBaseline

      public int calcBaseline(LayoutContext c)
    • calcInitialBreakAtLine

      protected int calcInitialBreakAtLine(LayoutContext c)
    • isCurrentBreakAtLineContext

      public boolean isCurrentBreakAtLineContext(LayoutContext c)
    • calcBreakAtLineContext

      public BreakAtLineContext calcBreakAtLineContext(LayoutContext c)
    • calcInlineBaseline

      public int calcInlineBaseline(CssContext c)
    • findOffset

      public int findOffset(Box box)
    • findLastNthLineBox

      public LineBox findLastNthLineBox(int count)
    • findLastLineBox

      private void findLastLineBox(BlockBox.LastLineBoxContext context)
    • findLastLineBox

      private LineBox findLastLineBox()
    • findFirstLineBox

      private LineBox findFirstLineBox()
    • isNeedsKeepWithInline

      public boolean isNeedsKeepWithInline(LayoutContext c)
    • isFloated

      public boolean isFloated()
    • getFloatedBoxData

      public @Nullable FloatedBoxData getFloatedBoxData()
    • setFloatedBoxData

      public void setFloatedBoxData(@Nullable FloatedBoxData floatedBoxData)
    • 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 class Box
    • isInMainFlow

      public boolean isInMainFlow()
    • isContainsInlineContent

      public boolean isContainsInlineContent(LayoutContext c)
    • checkPageContext

      public boolean checkPageContext(LayoutContext c)
    • isNeedsClipOnPaint

      public boolean isNeedsClipOnPaint(RenderingContext c)
    • propagateExtraSpace

      protected void propagateExtraSpace(LayoutContext c, ContentLimitContainer parentContainer, ContentLimitContainer currentContainer, int extraTop, int extraBottom)