方法

GtkPrintOperationrun

声明 [src]

GtkPrintOperationResult
gtk_print_operation_run (
  GtkPrintOperation* op,
  GtkPrintOperationAction action,
  GtkWindow* parent,
  GError** error
)

描述 [src]

运行打印操作。

通常,此函数不会返回,直到所有页面的渲染完成。您可以通过连接到 op 上的 GtkPrintOperation::status-changed 信号来获取有关打印操作进度的信息。

此外,它可能使用递归的主循环来显示打印对话框。

如果设置了 [Gtk.PrintOperation:allow-async] 属性,并且平台支持,则操作将以异步方式运行。当操作完成时(即当对话框被取消,或者打印成功或失败时),将通过 GtkPrintOperation::done 信号发出操作结果。

if (settings != NULL)
  gtk_print_operation_set_print_settings (print, settings);

if (page_setup != NULL)
  gtk_print_operation_set_default_page_setup (print, page_setup);

g_signal_connect (print, "begin-print",
                  G_CALLBACK (begin_print), &data);
g_signal_connect (print, "draw-page",
                  G_CALLBACK (draw_page), &data);

res = gtk_print_operation_run (print,
                               GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG,
                               parent,
                               &error);

if (res == GTK_PRINT_OPERATION_RESULT_ERROR)
 {
   error_dialog = gtk_message_dialog_new (GTK_WINDOW (parent),
                                 GTK_DIALOG_DESTROY_WITH_PARENT,
                         GTK_MESSAGE_ERROR,
                         GTK_BUTTONS_CLOSE,
                         "Error printing file:\n%s",
                         error->message);
   g_signal_connect (error_dialog, "response",
                     G_CALLBACK (gtk_window_destroy), NULL);
   gtk_window_present (GTK_WINDOW (error_dialog));
   g_error_free (error);
 }
else if (res == GTK_PRINT_OPERATION_RESULT_APPLY)
 {
   if (settings != NULL)
g_object_unref (settings);
   settings = g_object_ref (gtk_print_operation_get_print_settings (print));
 }

请注意,只能对给定的 GtkPrintOperation 调用一次 gtk_print_operation_run()

参数

action

类型: GtkPrintOperationAction

要启动的操作。

parent

类型: GtkWindow

对话框的临时父窗口。

该参数可以是 NULL
数据归方法调用者所有。
error

类型: GError **

恢复错误的返回位置的规则

该参数可以是 NULL
如果返回位置不是 NULL,则你必须将其初始化为 NULLGError*
如果没有错误,该方法将把参数初始化为 NULL
发生错误时,参数将被设置为新分配的 GError;调用者将拥有数据,并负责释放它。

返回值

类型: GtkPrintOperationResult

打印操作的结果。返回值为 GTK_PRINT_OPERATION_RESULT_APPLY 表示打印成功完成。在这种情况下,获取使用的打印设置并使用 gtk_print_operation_get_print_settings() 保存它们,以便在下一次打印操作中重复使用是个好主意。值为 GTK_PRINT_OPERATION_RESULT_IN_PROGRESS 表示操作正在异步运行,操作完成后将发出 GtkPrintOperation::done 信号。