public interface PrintIterator
Print.iterator(Device, GC)
, and are initialized with the graphics
device passed to that method.Modifier and Type | Method and Description |
---|---|
PrintIterator |
copy()
Returns a copy of this PrintIterator, with all relevant internal states.
|
boolean |
hasNext()
Identifies whether any PrintPieces remain.
|
org.eclipse.swt.graphics.Point |
minimumSize()
Returns the minimum size PrintPiece that this Print should be broken
into.
|
PrintPiece |
next(int width,
int height)
Returns the next PrintPiece for the Print.
|
org.eclipse.swt.graphics.Point |
preferredSize()
Returns the smallest size PrintPiece that this Print would be broken into
if print space was unlimited.
|
boolean hasNext()
PrintPiece next(int width, int height)
If all of the remaining contents of the Print will fit in the given
space, the returned PrintPiece will include all remaining contents, and
subsequent calls to hasNext()
will return
false
.
If some, but not all of the remaining contents will fit in the given
space, the returned PrintPiece will contain as much of the contents as
possible, and subsequent calls to hasNext()
will
return true
.
If there is insufficient space for any of the remaining contents in the
given space, null
is returned, and subsequent calls to
hasNext()
will return true
.
If subsequent calls to PrintIterator#hasNext() return true
,
this PrintIterator cannot fit any more in the given print area. Future
calls to this method should provide a fresh print area. At the top level,
each returned PrintPiece contains an entire page.
Note: PrintIterator classes should call
PaperClips.next(PrintIterator, int, int)
instead of calling this
method directly, to gain automatic results checking to ensure all Print
classes are well-behaved.
width
- the width available on the graphics device for this iteration.height
- the height available on the graphics device for this
iteration.org.eclipse.swt.graphics.Point minimumSize()
Note that the size calculated by this method is a "preferred minimum," or the smallest size that the Print should normally be broken into. For a TextPrint, this is the size of the widest individual word, in pixels.
This is distinct from the "absolute minimum," which is the smallest size that a Print could possibly be broken into. For a TextPrint, this is the size of the widest individual letter, in pixels.
org.eclipse.swt.graphics.Point preferredSize()
For a TextPrint, this is the size of the widest line (or the whole TextPrint, if there are no line breaks), in pixels.
PrintIterator copy()
next(int, int)
on
them. The containing iterator can then safely attempt iterating its
child(ren) in a variety of ways before selecting which way is the most
appropriate.