Package com.openhtmltopdf.layout
Class BoxCollector
java.lang.Object
com.openhtmltopdf.layout.BoxCollector
A class to collect boxes which intersect a given clip region. If available,
aggregate bounds information will be used. Block and inline content are
added to separate lists as they are painted in separate render phases.
This class flattens the nested structure of boxes in a depth first fashion.
Range lists are created for
overflow:hidden
boxes to specify the first block
where a clip comes into affect and the end block where the clip is undone.
For example, if a hidden box is first in a layer and contains 10 child boxes
the range list will contain an entry for 0, 11, specifying the start and end of the clip.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
collect
(CssContext c, Shape clip, Layer layer, Box container, List<Box> blockContent, List<Box> inlineContent, BoxRangeLists rangeLists) void
collect
(CssContext c, Shape clip, Layer layer, List<Box> blockContent, List<Box> inlineContent, BoxRangeLists rangeLists) private void
collectInlineLayer
(CssContext c, Shape clip, Layer layer, List<Box> blockContent, List<Box> inlineContent, BoxRangeLists rangeLists) private boolean
intersectsAggregateBounds
(Shape clip, Box box) boolean
intersectsAny
(CssContext c, Shape clip, Box master) private boolean
intersectsAny
(CssContext c, Shape clip, Box master, Box container) private void
saveRangeData
(CssContext c, Box container, List<Box> blockContent, List<Box> inlineContent, BoxRangeLists rangeLists, boolean isBlock, int blockStart, int inlineStart, int blockRangeStart, int inlineRangeStart)
-
Constructor Details
-
BoxCollector
public BoxCollector()
-
-
Method Details
-
collect
public void collect(CssContext c, Shape clip, Layer layer, List<Box> blockContent, List<Box> inlineContent, BoxRangeLists rangeLists) -
intersectsAny
-
collectInlineLayer
private void collectInlineLayer(CssContext c, Shape clip, Layer layer, List<Box> blockContent, List<Box> inlineContent, BoxRangeLists rangeLists) -
intersectsAggregateBounds
-
collect
public void collect(CssContext c, Shape clip, Layer layer, Box container, List<Box> blockContent, List<Box> inlineContent, BoxRangeLists rangeLists) -
saveRangeData
private void saveRangeData(CssContext c, Box container, List<Box> blockContent, List<Box> inlineContent, BoxRangeLists rangeLists, boolean isBlock, int blockStart, int inlineStart, int blockRangeStart, int inlineRangeStart) -
intersectsAny
-