Package com.openhtmltopdf.layout
Class FloatManager
- java.lang.Object
-
- com.openhtmltopdf.layout.FloatManager
-
public class FloatManager extends java.lang.Object
A class that manages all floated boxes in a given block formatting context. It is responsible for positioning floats and calculating clearance for non-floated (block) boxes.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
FloatManager.BoxDistance
static class
FloatManager.BoxOffset
static class
FloatManager.FloatDirection
static interface
FloatManager.FloatOperation
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<FloatManager.BoxOffset>
_leftFloats
private Box
_master
private java.util.List<FloatManager.BoxOffset>
_rightFloats
-
Constructor Summary
Constructors Constructor Description FloatManager(Box master)
-
Method Summary
-
-
-
Field Detail
-
_leftFloats
private java.util.List<FloatManager.BoxOffset> _leftFloats
-
_rightFloats
private java.util.List<FloatManager.BoxOffset> _rightFloats
-
_master
private final Box _master
-
-
Constructor Detail
-
FloatManager
public FloatManager(Box master)
-
-
Method Detail
-
getAddableFloats
private java.util.List<FloatManager.BoxOffset> getAddableFloats(FloatManager.FloatDirection direction)
-
setFloats
private void setFloats(FloatManager.FloatDirection direction, java.util.List<FloatManager.BoxOffset> list)
-
floatBox
public void floatBox(LayoutContext c, Layer layer, BlockFormattingContext bfc, BlockBox box)
-
clear
public void clear(CssContext cssCtx, BlockFormattingContext bfc, Box box)
-
save
private void save(BlockBox current, Layer layer, BlockFormattingContext bfc, FloatManager.FloatDirection direction)
-
position
private void position(CssContext cssCtx, BlockFormattingContext bfc, BlockBox current, FloatManager.FloatDirection direction)
-
getFloats
public java.util.List<FloatManager.BoxOffset> getFloats(FloatManager.FloatDirection direction)
-
getFloatStream
public java.util.stream.Stream<FloatManager.BoxOffset> getFloatStream(FloatManager.FloatDirection direction)
-
getOpposingFloats
private java.util.List<FloatManager.BoxOffset> getOpposingFloats(FloatManager.FloatDirection direction)
-
alignToLastFloat
private void alignToLastFloat(CssContext cssCtx, BlockFormattingContext bfc, BlockBox current, FloatManager.FloatDirection direction)
-
alignToLastOpposingFloat
private void alignToLastOpposingFloat(CssContext cssCtx, BlockFormattingContext bfc, BlockBox current, FloatManager.FloatDirection direction)
-
moveAllTheWayOver
private void moveAllTheWayOver(BlockBox current, FloatManager.FloatDirection direction)
-
fitsInContainingBlock
private boolean fitsInContainingBlock(BlockBox current)
-
findLowestY
private int findLowestY(CssContext cssCtx, java.util.List<FloatManager.BoxOffset> floats)
-
getClearDelta
public int getClearDelta(CssContext cssCtx, int bfcRelativeY)
-
overlaps
private boolean overlaps(CssContext cssCtx, BlockFormattingContext bfc, BlockBox current, java.util.List<FloatManager.BoxOffset> floats)
-
moveFloatBelow
private void moveFloatBelow(CssContext cssCtx, BlockFormattingContext bfc, Box current, java.util.List<FloatManager.BoxOffset> floats)
-
moveClear
private void moveClear(CssContext cssCtx, BlockFormattingContext bfc, Box current, java.util.List<FloatManager.BoxOffset> floats)
-
removeFloat
public void removeFloat(BlockBox floater)
-
removeFloat
private void removeFloat(BlockBox floater, java.util.List<FloatManager.BoxOffset> floats)
-
calcFloatLocations
public void calcFloatLocations()
-
calcFloatLocations
private void calcFloatLocations(java.util.List<FloatManager.BoxOffset> floats)
-
applyLineHeightHack
private void applyLineHeightHack(CssContext cssCtx, Box line, java.awt.Rectangle bounds)
-
getNextLineBoxDelta
public int getNextLineBoxDelta(CssContext cssCtx, BlockFormattingContext bfc, LineBox line, int containingBlockContentWidth)
-
calcDelta
private int calcDelta(CssContext cssCtx, LineBox line, FloatManager.BoxDistance boxDistance)
-
getLeftFloatDistance
public int getLeftFloatDistance(CssContext cssCtx, BlockFormattingContext bfc, LineBox line, int containingBlockContentWidth)
-
getRightFloatDistance
public int getRightFloatDistance(CssContext cssCtx, BlockFormattingContext bfc, LineBox line, int containingBlockContentWidth)
-
getFloatDistance
private FloatManager.BoxDistance getFloatDistance(CssContext cssCtx, BlockFormattingContext bfc, LineBox line, int containingBlockContentWidth, java.util.List<FloatManager.BoxOffset> floatsList, FloatManager.FloatDirection direction)
-
getMaster
public Box getMaster()
-
getOffset
public java.awt.Point getOffset(BlockBox floater)
-
getOffset
private java.awt.Point getOffset(BlockBox floater, java.util.stream.Stream<FloatManager.BoxOffset> floats)
-
performFloatOperation
private void performFloatOperation(FloatManager.FloatOperation op, java.util.List<FloatManager.BoxOffset> floats)
-
performFloatOperation
public void performFloatOperation(FloatManager.FloatOperation op)
-
-