diff options
author | Alexander Larsson <alexl@redhat.com> | 2006-06-07 15:09:03 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@src.gnome.org> | 2006-06-07 15:09:03 +0000 |
commit | 9bea38595fcd9b4e9f55de3dcd5199dab930e713 (patch) | |
tree | 1c5d2d561965a275c566abc8f1a083cc5cf46976 /gtk/gtkprintoperation-unix.c | |
parent | 36f7ed300ad786fc6ba88e9c7a7d771c689af06e (diff) | |
download | gtk+-9bea38595fcd9b4e9f55de3dcd5199dab930e713.tar.gz |
Clean up APIs: Make async a setting instead of separate calls. Combine
2006-06-07 Alexander Larsson <alexl@redhat.com>
* gtk/gtk.symbols:
* gtk/gtkprintoperation-private.h:
* gtk/gtkprintoperation-unix.c:
* gtk/gtkprintoperation.[ch]:
Clean up APIs:
Make async a setting instead of separate calls.
Combine settings like show_dialog, show_preview and pdf_target into
an action enum that you pass to gtk_print_dialog_run().
* tests/print-editor.c:
* tests/testnouiprint.c:
* tests/testprint.c:
* demos/gtk-demo/printing.c:
Update to new APIs
Diffstat (limited to 'gtk/gtkprintoperation-unix.c')
-rw-r--r-- | gtk/gtkprintoperation-unix.c | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/gtk/gtkprintoperation-unix.c b/gtk/gtkprintoperation-unix.c index 2f66fa1ca8..d5389f92c7 100644 --- a/gtk/gtkprintoperation-unix.c +++ b/gtk/gtkprintoperation-unix.c @@ -350,7 +350,6 @@ typedef struct { GtkPrintOperation *op; gboolean do_print; - GError **error; GtkPrintOperationResult result; GtkPrintOperationPrintFunc print_cb; GDestroyNotify destroy; @@ -391,7 +390,7 @@ finish_print (PrintResponseData *rdata, GtkPrintOperationUnix *op_unix; cairo_t *cr; - op_unix = g_new0 (GtkPrintOperationUnix, 1); + op_unix = g_new0 (GtkPrintOperationUnix, 1); priv->platform_data = op_unix; priv->free_platform_data = (GDestroyNotify) op_unix_free; op_unix->parent = rdata->parent; @@ -404,9 +403,10 @@ finish_print (PrintResponseData *rdata, op_unix->job = job; gtk_print_job_set_track_print_status (job, priv->track_print_status); - op_unix->surface = gtk_print_job_get_surface (job, rdata->error); + op_unix->surface = gtk_print_job_get_surface (job, &priv->error); if (op_unix->surface == NULL) { + rdata->result = GTK_PRINT_OPERATION_RESULT_ERROR; rdata->do_print = FALSE; goto out; } @@ -435,12 +435,7 @@ finish_print (PrintResponseData *rdata, } out: if (rdata->print_cb) - { - if (rdata->do_print) - rdata->print_cb (op, rdata->parent, is_preview); - else - _gtk_print_operation_set_status (op, GTK_PRINT_STATUS_FINISHED_ABORTED, NULL); - } + rdata->print_cb (op, rdata->do_print, rdata->parent, rdata->result); if (rdata->destroy) rdata->destroy (rdata); @@ -504,10 +499,7 @@ found_printer (GtkPrinter *printer, if (printer != NULL) { - if (priv->show_preview) - rdata->result = GTK_PRINT_OPERATION_RESULT_PREVIEW; - else - rdata->result = GTK_PRINT_OPERATION_RESULT_APPLY; + rdata->result = GTK_PRINT_OPERATION_RESULT_APPLY; rdata->do_print = TRUE; @@ -536,6 +528,7 @@ found_printer (GtkPrinter *printer, void _gtk_print_operation_platform_backend_run_dialog_async (GtkPrintOperation *op, + gboolean show_dialog, GtkWindow *parent, GtkPrintOperationPrintFunc print_cb) { @@ -547,13 +540,12 @@ _gtk_print_operation_platform_backend_run_dialog_async (GtkPrintOperation rdata->op = g_object_ref (op); rdata->do_print = FALSE; rdata->result = GTK_PRINT_OPERATION_RESULT_CANCEL; - rdata->error = NULL; rdata->print_cb = print_cb; rdata->parent = parent; rdata->loop = NULL; rdata->destroy = print_response_data_free; - if (op->priv->show_dialog) + if (show_dialog) { pd = get_print_dialog (op, parent); gtk_window_set_modal (GTK_WINDOW (pd), TRUE); @@ -608,9 +600,9 @@ _gtk_print_operation_platform_backend_resize_preview_surface (GtkPrintOperation GtkPrintOperationResult _gtk_print_operation_platform_backend_run_dialog (GtkPrintOperation *op, + gboolean show_dialog, GtkWindow *parent, - gboolean *do_print, - GError **error) + gboolean *do_print) { GtkWidget *pd; PrintResponseData rdata; @@ -620,13 +612,12 @@ _gtk_print_operation_platform_backend_run_dialog (GtkPrintOperation *op, rdata.op = op; rdata.do_print = FALSE; rdata.result = GTK_PRINT_OPERATION_RESULT_CANCEL; - rdata.error = error; rdata.print_cb = NULL; rdata.destroy = NULL; rdata.parent = parent; rdata.loop = NULL; - if (op->priv->show_dialog) + if (show_dialog) { pd = get_print_dialog (op, parent); |