Interface PrintOperation.PaginateCallback

All Superinterfaces:
FunctionPointer
Enclosing class:
PrintOperation
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public static interface PrintOperation.PaginateCallback extends FunctionPointer

Functional interface declaration of the PaginateCallback callback.

See Also:
  • Method Details

    • run

      boolean run(@Nullable PrintContext context)

      Emitted after the ::begin-print signal, but before the actual rendering starts.

      It keeps getting emitted until a connected signal handler returns true.

      The ::paginate signal is intended to be used for paginating a document in small chunks, to avoid blocking the user interface for a long time. The signal handler should update the number of pages using PrintOperation.setNPages(int), and return true if the document has been completely paginated.

      If you don't need to do pagination in chunks, you can simply do it all in the ::begin-print handler, and set the number of pages from there.

    • upcall

      default int upcall(MemorySegment sourcePrintOperation, MemorySegment context)
      The upcall method is called from native code. The parameters are marshaled and run(PrintContext) is executed.
    • toCallback

      default MemorySegment toCallback(Arena arena)
      Creates a native function pointer to the upcall(MemorySegment, MemorySegment) method.
      Specified by:
      toCallback in interface FunctionPointer
      Parameters:
      arena - the arena in which the function pointer is allocated
      Returns:
      the native function pointer