Normally that this function does not return until the rendering of all
pages is complete. You can connect to the
"status-changed"
signal on op
to obtain some
information about the progress of the print operation.
Furthermore, it may use a recursive mainloop to show the print dialog.
If you call gtkPrintOperationSetAllowAsync
or set the
"allow-async"
property the operation will run
asynchronously if this is supported on the platform. The
"done"
signal will be emitted with the result of the
operation when the it is done (i.e. when the dialog is canceled, or when
the print succeeds or fails).
if (!is.null(settings))
op$setPrintSettings(settings)
if (!is.null(page_setup))
op$setDefaultPageSetup(page_setup)
gSignalConnect(op, "begin-print", begin_print)
gSignalConnect(op, "draw-page", draw_page)
res <- op$run("print-dialog", parent)
if (res[[1]] == "error") {
error_dialog = gtkMessageDialog(parent, "destroy-with-parent", "error",
"close", "Error printing file: ", res$error$message)
gSignalConnect(error_dialog, "response", gtkWidgetDestroy)
error_dialog$show()
} else if (res[[1]] == "apply")
settings = op$getPrintSettings()
Note that gtkPrintOperationRun
can only be called once on a
given GtkPrintOperation
.
Since 2.10