net.sf.vex.layout
Interface InlineBox

All Superinterfaces:
Box
All Known Implementing Classes:
CompositeInlineBox, PlaceholderBox, ShapeBox, SpaceBox, TextBox

public interface InlineBox
extends Box

Represents an inline box. Inline boxes are the children of line boxes.


Nested Class Summary
static class InlineBox.Pair
          Represents a pair of inline boxes as returned by the split method.
 
Method Summary
 boolean canBreakAtEnd()
          Returns true if a line break can occur after this box.
 int getBaseline()
          Returns the distance from the top of the inline box to the baseline.
 InlineBox.Pair split(LayoutContext context, int maxWidth, boolean force)
          Splits this inline box into two.
 
Methods inherited from interface net.sf.vex.layout.Box
containsOffset, getCaretShapes, getChildren, getElement, getEndOffset, getHeight, getStartOffset, getWidth, getX, getY, hasContent, paint, setX, setY, viewToModel
 

Method Detail

canBreakAtEnd

public boolean canBreakAtEnd()
Returns true if a line break can occur after this box. For example, this would be true for text boxes that end with a space.


getBaseline

public int getBaseline()
Returns the distance from the top of the inline box to the baseline.


split

public InlineBox.Pair split(LayoutContext context,
                            int maxWidth,
                            boolean force)
Splits this inline box into two. If force is false, this method should find a natural split point (e.g. after a space) and return two boxes representing a split at that point. The width of the last box must not exceed maxWidth. If no such natural split exists, null should be returned as the left box and this returned as the right box.

If force is true, it means we are adding the first inline box to a line, therefore we must return something as the left box. In some cases, we may find a suboptimal split (e.g. between characters) that satisfies this. In other cases, this should be returned as the left box even though it exceeds maxWidth.

In both cases, the right box should contain null if this box fits into maxWidth

Parameters:
context - the layout context to be used.
maxWidth - Maximum width of the left part of the box.
force - if true, force a suboptimal split