summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2006-05-24 10:50:57 +0000
committerAlexander Larsson <alexl@src.gnome.org>2006-05-24 10:50:57 +0000
commit70376f280a6735551404ad583eb9efd8afcc7cc3 (patch)
treede5dd5dc1df73c718f4dd5c4db22e55392901386 /modules
parent27f2b1d95a164b5a48d5bb402fb13c99423f5305 (diff)
downloadgtk+-70376f280a6735551404ad583eb9efd8afcc7cc3.tar.gz
Add gtk_print_unix_dialog_set_manual_capabilities that controls what
2006-05-24 Alexander Larsson <alexl@redhat.com> * gtk/gtk.symbols: * gtk/gtkprintunixdialog.[ch]: Add gtk_print_unix_dialog_set_manual_capabilities that controls what widgets to enable in the dialog depending on the apps capabilities. * gtk/gtkprintbackend.[ch]: * gtk/gtkprinter-private.h: * gtk/gtkprinter.c: * gtk/gtkprintjob.h: Add printer_get_capabilities to backend. Move some fallback calls to the printbackend base class. * gtk/gtkprintoperation-unix.c: Set manual capabilities * modules/printbackends/cups/gtkprintbackendcups.c: Implement get_capabilities * modules/printbackends/lpr/gtkprintbackendlpr.c: * modules/printbackends/pdf/gtkprintbackendpdf.c: Move some methods to baseclass.
Diffstat (limited to 'modules')
-rw-r--r--modules/printbackends/cups/gtkprintbackendcups.c11
-rw-r--r--modules/printbackends/lpr/gtkprintbackendlpr.c45
-rw-r--r--modules/printbackends/pdf/gtkprintbackendpdf.c45
3 files changed, 11 insertions, 90 deletions
diff --git a/modules/printbackends/cups/gtkprintbackendcups.c b/modules/printbackends/cups/gtkprintbackendcups.c
index c1b018029b..54434c23ce 100644
--- a/modules/printbackends/cups/gtkprintbackendcups.c
+++ b/modules/printbackends/cups/gtkprintbackendcups.c
@@ -137,6 +137,7 @@ static void cups_printer_get_hard_margins (GtkPrinter
double *bottom,
double *left,
double *right);
+static GtkPrintCapabilities cups_printer_get_capabilities (GtkPrinter *printer);
static void set_option_from_settings (GtkPrinterOption *option,
GtkPrintSettings *setting);
static void cups_begin_polling_info (GtkPrintBackendCups *print_backend,
@@ -241,6 +242,7 @@ gtk_print_backend_cups_class_init (GtkPrintBackendCupsClass *class)
backend_class->printer_prepare_for_print = cups_printer_prepare_for_print;
backend_class->printer_list_papers = cups_printer_list_papers;
backend_class->printer_get_hard_margins = cups_printer_get_hard_margins;
+ backend_class->printer_get_capabilities = cups_printer_get_capabilities;
}
static cairo_status_t
@@ -2593,3 +2595,12 @@ cups_printer_get_hard_margins (GtkPrinter *printer,
*right = ppd_file->custom_margins[2];
*top = ppd_file->custom_margins[3];
}
+
+static GtkPrintCapabilities
+cups_printer_get_capabilities (GtkPrinter *printer)
+{
+ return
+ GTK_PRINT_CAPABILITY_COPIES |
+ GTK_PRINT_CAPABILITY_COLLATE |
+ GTK_PRINT_CAPABILITY_REVERSE;
+}
diff --git a/modules/printbackends/lpr/gtkprintbackendlpr.c b/modules/printbackends/lpr/gtkprintbackendlpr.c
index d1391340dc..19c19ab122 100644
--- a/modules/printbackends/lpr/gtkprintbackendlpr.c
+++ b/modules/printbackends/lpr/gtkprintbackendlpr.c
@@ -66,8 +66,6 @@ static void gtk_print_backend_lpr_init (GtkPrintBacke
static void lpr_printer_get_settings_from_options (GtkPrinter *printer,
GtkPrinterOptionSet *options,
GtkPrintSettings *settings);
-static gboolean lpr_printer_mark_conflicts (GtkPrinter *printer,
- GtkPrinterOptionSet *options);
static GtkPrinterOptionSet *lpr_printer_get_options (GtkPrinter *printer,
GtkPrintSettings *settings,
GtkPageSetup *page_setup);
@@ -75,13 +73,6 @@ static void lpr_printer_prepare_for_print (GtkPrinter
GtkPrintJob *print_job,
GtkPrintSettings *settings,
GtkPageSetup *page_setup);
-static void lpr_printer_get_hard_margins (GtkPrinter *printer,
- double *top,
- double *bottom,
- double *left,
- double *right);
-static void lpr_printer_request_details (GtkPrinter *printer);
-static GList * lpr_printer_list_papers (GtkPrinter *printer);
static cairo_surface_t * lpr_printer_create_cairo_surface (GtkPrinter *printer,
gdouble width,
gdouble height,
@@ -165,14 +156,10 @@ gtk_print_backend_lpr_class_init (GtkPrintBackendLprClass *class)
backend_parent_class = g_type_class_peek_parent (class);
backend_class->print_stream = gtk_print_backend_lpr_print_stream;
- backend_class->printer_request_details = lpr_printer_request_details;
backend_class->printer_create_cairo_surface = lpr_printer_create_cairo_surface;
backend_class->printer_get_options = lpr_printer_get_options;
- backend_class->printer_mark_conflicts = lpr_printer_mark_conflicts;
backend_class->printer_get_settings_from_options = lpr_printer_get_settings_from_options;
backend_class->printer_prepare_for_print = lpr_printer_prepare_for_print;
- backend_class->printer_list_papers = lpr_printer_list_papers;
- backend_class->printer_get_hard_margins = lpr_printer_get_hard_margins;
}
static cairo_status_t
@@ -394,11 +381,6 @@ gtk_print_backend_lpr_init (GtkPrintBackendLpr *backend)
g_object_unref (printer);
}
-static void
-lpr_printer_request_details (GtkPrinter *printer)
-{
-}
-
static GtkPrinterOptionSet *
lpr_printer_get_options (GtkPrinter *printer,
GtkPrintSettings *settings,
@@ -430,14 +412,6 @@ lpr_printer_get_options (GtkPrinter *printer,
return set;
}
-
-static gboolean
-lpr_printer_mark_conflicts (GtkPrinter *printer,
- GtkPrinterOptionSet *options)
-{
- return FALSE;
-}
-
static void
lpr_printer_get_settings_from_options (GtkPrinter *printer,
GtkPrinterOptionSet *options,
@@ -477,22 +451,3 @@ lpr_printer_prepare_for_print (GtkPrinter *printer,
print_job->page_set = gtk_print_settings_get_page_set (settings);
print_job->rotate_to_orientation = TRUE;
}
-
-static void
-lpr_printer_get_hard_margins (GtkPrinter *printer,
- double *top,
- double *bottom,
- double *left,
- double *right)
-{
- *top = 0;
- *bottom = 0;
- *left = 0;
- *right = 0;
-}
-
-static GList *
-lpr_printer_list_papers (GtkPrinter *printer)
-{
- return NULL;
-}
diff --git a/modules/printbackends/pdf/gtkprintbackendpdf.c b/modules/printbackends/pdf/gtkprintbackendpdf.c
index cfc7932fe3..4a0781d250 100644
--- a/modules/printbackends/pdf/gtkprintbackendpdf.c
+++ b/modules/printbackends/pdf/gtkprintbackendpdf.c
@@ -67,8 +67,6 @@ static void gtk_print_backend_pdf_init (GtkPrintBacke
static void pdf_printer_get_settings_from_options (GtkPrinter *printer,
GtkPrinterOptionSet *options,
GtkPrintSettings *settings);
-static gboolean pdf_printer_mark_conflicts (GtkPrinter *printer,
- GtkPrinterOptionSet *options);
static GtkPrinterOptionSet *pdf_printer_get_options (GtkPrinter *printer,
GtkPrintSettings *settings,
GtkPageSetup *page_setup);
@@ -76,13 +74,6 @@ static void pdf_printer_prepare_for_print (GtkPrinter
GtkPrintJob *print_job,
GtkPrintSettings *settings,
GtkPageSetup *page_setup);
-static void pdf_printer_get_hard_margins (GtkPrinter *printer,
- double *top,
- double *bottom,
- double *left,
- double *right);
-static void pdf_printer_request_details (GtkPrinter *printer);
-static GList * pdf_printer_list_papers (GtkPrinter *printer);
static void gtk_print_backend_pdf_print_stream (GtkPrintBackend *print_backend,
GtkPrintJob *job,
gint data_fd,
@@ -166,14 +157,10 @@ gtk_print_backend_pdf_class_init (GtkPrintBackendPdfClass *class)
backend_parent_class = g_type_class_peek_parent (class);
backend_class->print_stream = gtk_print_backend_pdf_print_stream;
- backend_class->printer_request_details = pdf_printer_request_details;
backend_class->printer_create_cairo_surface = pdf_printer_create_cairo_surface;
backend_class->printer_get_options = pdf_printer_get_options;
- backend_class->printer_mark_conflicts = pdf_printer_mark_conflicts;
backend_class->printer_get_settings_from_options = pdf_printer_get_settings_from_options;
backend_class->printer_prepare_for_print = pdf_printer_prepare_for_print;
- backend_class->printer_list_papers = pdf_printer_list_papers;
- backend_class->printer_get_hard_margins = pdf_printer_get_hard_margins;
}
static cairo_status_t
@@ -364,11 +351,6 @@ gtk_print_backend_pdf_init (GtkPrintBackendPdf *backend)
gtk_print_backend_set_list_done (GTK_PRINT_BACKEND (backend));
}
-static void
-pdf_printer_request_details (GtkPrinter *printer)
-{
-}
-
static GtkPrinterOptionSet *
pdf_printer_get_options (GtkPrinter *printer,
GtkPrintSettings *settings,
@@ -400,14 +382,6 @@ pdf_printer_get_options (GtkPrinter *printer,
return set;
}
-
-static gboolean
-pdf_printer_mark_conflicts (GtkPrinter *printer,
- GtkPrinterOptionSet *options)
-{
- return FALSE;
-}
-
static void
pdf_printer_get_settings_from_options (GtkPrinter *printer,
GtkPrinterOptionSet *options,
@@ -447,22 +421,3 @@ pdf_printer_prepare_for_print (GtkPrinter *printer,
print_job->page_set = gtk_print_settings_get_page_set (settings);
print_job->rotate_to_orientation = TRUE;
}
-
-static void
-pdf_printer_get_hard_margins (GtkPrinter *printer,
- double *top,
- double *bottom,
- double *left,
- double *right)
-{
- *top = 0;
- *bottom = 0;
- *left = 0;
- *right = 0;
-}
-
-static GList *
-pdf_printer_list_papers (GtkPrinter *printer)
-{
- return NULL;
-}