Cleanups
This commit is contained in:
@ -1,3 +1,7 @@
|
|||||||
|
2006-06-02 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkprintoperation-unix.c: Cleanups
|
||||||
|
|
||||||
2006-06-02 Kristian Rietveld <kris@imendio.com>
|
2006-06-02 Kristian Rietveld <kris@imendio.com>
|
||||||
|
|
||||||
Rubber banding for GtkTreeView, #80127. Uses same method as
|
Rubber banding for GtkTreeView, #80127. Uses same method as
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2006-06-02 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkprintoperation-unix.c: Cleanups
|
||||||
|
|
||||||
2006-06-02 Kristian Rietveld <kris@imendio.com>
|
2006-06-02 Kristian Rietveld <kris@imendio.com>
|
||||||
|
|
||||||
Rubber banding for GtkTreeView, #80127. Uses same method as
|
Rubber banding for GtkTreeView, #80127. Uses same method as
|
||||||
|
@ -44,7 +44,8 @@
|
|||||||
#include "gtkalias.h"
|
#include "gtkalias.h"
|
||||||
#include "gtkintl.h"
|
#include "gtkintl.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct
|
||||||
|
{
|
||||||
GtkWindow *parent; /* just in case we need to throw error dialogs */
|
GtkWindow *parent; /* just in case we need to throw error dialogs */
|
||||||
GMainLoop *loop;
|
GMainLoop *loop;
|
||||||
gboolean data_sent;
|
gboolean data_sent;
|
||||||
@ -60,7 +61,7 @@ typedef struct {
|
|||||||
typedef struct _PrinterFinder PrinterFinder;
|
typedef struct _PrinterFinder PrinterFinder;
|
||||||
|
|
||||||
static void printer_finder_free (PrinterFinder *finder);
|
static void printer_finder_free (PrinterFinder *finder);
|
||||||
static void find_printer (const char *printer,
|
static void find_printer (const gchar *printer,
|
||||||
GFunc func,
|
GFunc func,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
|
|
||||||
@ -72,7 +73,7 @@ unix_start_page (GtkPrintOperation *op,
|
|||||||
GtkPrintOperationUnix *op_unix;
|
GtkPrintOperationUnix *op_unix;
|
||||||
GtkPaperSize *paper_size;
|
GtkPaperSize *paper_size;
|
||||||
cairo_surface_type_t type;
|
cairo_surface_type_t type;
|
||||||
double w, h;
|
gdouble w, h;
|
||||||
|
|
||||||
op_unix = op->priv->platform_data;
|
op_unix = op->priv->platform_data;
|
||||||
|
|
||||||
@ -112,12 +113,12 @@ op_unix_free (GtkPrintOperationUnix *op_unix)
|
|||||||
g_free (op_unix);
|
g_free (op_unix);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *
|
static gchar *
|
||||||
shell_command_substitute_file (const gchar *cmd,
|
shell_command_substitute_file (const gchar *cmd,
|
||||||
const gchar *filename)
|
const gchar *filename)
|
||||||
{
|
{
|
||||||
const char *inptr, *start;
|
const gchar *inptr, *start;
|
||||||
char *result;
|
gchar *result;
|
||||||
GString *final;
|
GString *final;
|
||||||
|
|
||||||
g_return_val_if_fail (cmd != NULL, NULL);
|
g_return_val_if_fail (cmd != NULL, NULL);
|
||||||
@ -163,10 +164,10 @@ shell_command_substitute_file (const gchar *cmd,
|
|||||||
|
|
||||||
void
|
void
|
||||||
_gtk_print_operation_platform_backend_launch_preview (GtkPrintOperation *op,
|
_gtk_print_operation_platform_backend_launch_preview (GtkPrintOperation *op,
|
||||||
GtkWindow *parent,
|
GtkWindow *parent,
|
||||||
const char *filename)
|
const gchar *filename)
|
||||||
{
|
{
|
||||||
int argc;
|
gint argc;
|
||||||
gchar **argv;
|
gchar **argv;
|
||||||
gchar *cmd;
|
gchar *cmd;
|
||||||
gchar *preview_cmd;
|
gchar *preview_cmd;
|
||||||
@ -182,7 +183,7 @@ _gtk_print_operation_platform_backend_launch_preview (GtkPrintOperation *op,
|
|||||||
cmd = shell_command_substitute_file (preview_cmd, quoted_filename);
|
cmd = shell_command_substitute_file (preview_cmd, quoted_filename);
|
||||||
g_shell_parse_argv (cmd, &argc, &argv, &error);
|
g_shell_parse_argv (cmd, &argc, &argv, &error);
|
||||||
|
|
||||||
if (error !=NULL)
|
if (error != NULL)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (parent)
|
if (parent)
|
||||||
@ -220,7 +221,7 @@ _gtk_print_operation_platform_backend_launch_preview (GtkPrintOperation *op,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
unix_finish_send (GtkPrintJob *job,
|
unix_finish_send (GtkPrintJob *job,
|
||||||
void *user_data,
|
gpointer user_data,
|
||||||
GError *error)
|
GError *error)
|
||||||
{
|
{
|
||||||
GtkPrintOperationUnix *op_unix;
|
GtkPrintOperationUnix *op_unix;
|
||||||
@ -339,13 +340,14 @@ get_print_dialog (GtkPrintOperation *op,
|
|||||||
label = gtk_label_new (custom_tab_label);
|
label = gtk_label_new (custom_tab_label);
|
||||||
|
|
||||||
gtk_print_unix_dialog_add_custom_tab (GTK_PRINT_UNIX_DIALOG (pd),
|
gtk_print_unix_dialog_add_custom_tab (GTK_PRINT_UNIX_DIALOG (pd),
|
||||||
op->priv->custom_widget, label);
|
priv->custom_widget, label);
|
||||||
}
|
}
|
||||||
|
|
||||||
return pd;
|
return pd;
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct {
|
typedef struct
|
||||||
|
{
|
||||||
GtkPrintOperation *op;
|
GtkPrintOperation *op;
|
||||||
gboolean do_print;
|
gboolean do_print;
|
||||||
GError **error;
|
GError **error;
|
||||||
@ -367,12 +369,13 @@ print_response_data_free (gpointer data)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
finish_print (PrintResponseData *rdata,
|
finish_print (PrintResponseData *rdata,
|
||||||
GtkPrinter *printer,
|
GtkPrinter *printer,
|
||||||
GtkPageSetup *page_setup,
|
GtkPageSetup *page_setup,
|
||||||
GtkPrintSettings *settings)
|
GtkPrintSettings *settings)
|
||||||
{
|
{
|
||||||
GtkPrintOperation *op = rdata->op;
|
GtkPrintOperation *op = rdata->op;
|
||||||
GtkPrintOperationPrivate *priv = op->priv;
|
GtkPrintOperationPrivate *priv = op->priv;
|
||||||
|
GtkPrintJob *job;
|
||||||
gboolean is_preview;
|
gboolean is_preview;
|
||||||
|
|
||||||
is_preview = rdata->result == GTK_PRINT_OPERATION_RESULT_PREVIEW;
|
is_preview = rdata->result == GTK_PRINT_OPERATION_RESULT_PREVIEW;
|
||||||
@ -397,39 +400,37 @@ finish_print (PrintResponseData *rdata,
|
|||||||
priv->end_page = unix_end_page;
|
priv->end_page = unix_end_page;
|
||||||
priv->end_run = unix_end_run;
|
priv->end_run = unix_end_run;
|
||||||
|
|
||||||
op_unix->job = gtk_print_job_new (priv->job_name,
|
job = gtk_print_job_new (priv->job_name, printer, settings, page_setup);
|
||||||
printer,
|
op_unix->job = job;
|
||||||
settings,
|
gtk_print_job_set_track_print_status (job, priv->track_print_status);
|
||||||
page_setup);
|
|
||||||
gtk_print_job_set_track_print_status (op_unix->job, priv->track_print_status);
|
|
||||||
|
|
||||||
op_unix->surface = gtk_print_job_get_surface (op_unix->job, rdata->error);
|
op_unix->surface = gtk_print_job_get_surface (job, rdata->error);
|
||||||
if (op_unix->surface == NULL) {
|
if (op_unix->surface == NULL)
|
||||||
rdata->do_print = FALSE;
|
{
|
||||||
goto out;
|
rdata->do_print = FALSE;
|
||||||
}
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
cr = cairo_create (op_unix->surface);
|
cr = cairo_create (op_unix->surface);
|
||||||
gtk_print_context_set_cairo_context (op->priv->print_context,
|
gtk_print_context_set_cairo_context (priv->print_context, cr, 72, 72);
|
||||||
cr, 72, 72);
|
|
||||||
cairo_destroy (cr);
|
cairo_destroy (cr);
|
||||||
|
|
||||||
_gtk_print_operation_set_status (op, gtk_print_job_get_status (op_unix->job), NULL);
|
_gtk_print_operation_set_status (op, gtk_print_job_get_status (job), NULL);
|
||||||
|
|
||||||
op_unix->job_status_changed_tag =
|
op_unix->job_status_changed_tag =
|
||||||
g_signal_connect (op_unix->job, "status-changed",
|
g_signal_connect (job, "status-changed",
|
||||||
G_CALLBACK (job_status_changed_cb), op);
|
G_CALLBACK (job_status_changed_cb), op);
|
||||||
|
|
||||||
priv->print_pages = op_unix->job->print_pages;
|
priv->print_pages = job->print_pages;
|
||||||
priv->page_ranges = op_unix->job->page_ranges;
|
priv->page_ranges = job->page_ranges;
|
||||||
priv->num_page_ranges = op_unix->job->num_page_ranges;
|
priv->num_page_ranges = job->num_page_ranges;
|
||||||
|
|
||||||
priv->manual_num_copies = op_unix->job->num_copies;
|
priv->manual_num_copies = job->num_copies;
|
||||||
priv->manual_collation = op_unix->job->collate;
|
priv->manual_collation = job->collate;
|
||||||
priv->manual_reverse = op_unix->job->reverse;
|
priv->manual_reverse = job->reverse;
|
||||||
priv->manual_page_set = op_unix->job->page_set;
|
priv->manual_page_set = job->page_set;
|
||||||
priv->manual_scale = op_unix->job->scale;
|
priv->manual_scale = job->scale;
|
||||||
priv->manual_orientation = op_unix->job->rotate_to_orientation;
|
priv->manual_orientation = job->rotate_to_orientation;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
@ -490,7 +491,7 @@ handle_print_response (GtkWidget *dialog,
|
|||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
found_printer (GtkPrinter *printer,
|
found_printer (GtkPrinter *printer,
|
||||||
PrintResponseData *rdata)
|
PrintResponseData *rdata)
|
||||||
{
|
{
|
||||||
GtkPrintOperation *op = rdata->op;
|
GtkPrintOperation *op = rdata->op;
|
||||||
@ -501,7 +502,8 @@ found_printer (GtkPrinter *printer,
|
|||||||
if (rdata->loop)
|
if (rdata->loop)
|
||||||
g_main_loop_quit (rdata->loop);
|
g_main_loop_quit (rdata->loop);
|
||||||
|
|
||||||
if (printer != NULL) {
|
if (printer != NULL)
|
||||||
|
{
|
||||||
rdata->result = GTK_PRINT_OPERATION_RESULT_APPLY;
|
rdata->result = GTK_PRINT_OPERATION_RESULT_APPLY;
|
||||||
|
|
||||||
rdata->do_print = TRUE;
|
rdata->do_print = TRUE;
|
||||||
@ -536,7 +538,7 @@ _gtk_print_operation_platform_backend_run_dialog_async (GtkPrintOperation
|
|||||||
{
|
{
|
||||||
GtkWidget *pd;
|
GtkWidget *pd;
|
||||||
PrintResponseData *rdata;
|
PrintResponseData *rdata;
|
||||||
const char *printer_name;
|
const gchar *printer_name;
|
||||||
|
|
||||||
rdata = g_new (PrintResponseData, 1);
|
rdata = g_new (PrintResponseData, 1);
|
||||||
rdata->op = g_object_ref (op);
|
rdata->op = g_object_ref (op);
|
||||||
@ -564,20 +566,19 @@ _gtk_print_operation_platform_backend_run_dialog_async (GtkPrintOperation
|
|||||||
if (op->priv->print_settings)
|
if (op->priv->print_settings)
|
||||||
printer_name = gtk_print_settings_get_printer (op->priv->print_settings);
|
printer_name = gtk_print_settings_get_printer (op->priv->print_settings);
|
||||||
|
|
||||||
find_printer (printer_name,
|
find_printer (printer_name, (GFunc) found_printer, rdata);
|
||||||
(GFunc) found_printer, rdata);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cairo_surface_t *
|
cairo_surface_t *
|
||||||
_gtk_print_operation_platform_backend_create_preview_surface (GtkPrintOperation *op,
|
_gtk_print_operation_platform_backend_create_preview_surface (GtkPrintOperation *op,
|
||||||
GtkPageSetup *page_setup,
|
GtkPageSetup *page_setup,
|
||||||
gdouble *dpi_x,
|
gdouble *dpi_x,
|
||||||
gdouble *dpi_y,
|
gdouble *dpi_y,
|
||||||
const gchar *target)
|
const gchar *target)
|
||||||
{
|
{
|
||||||
GtkPaperSize *paper_size;
|
GtkPaperSize *paper_size;
|
||||||
double w, h;
|
gdouble w, h;
|
||||||
|
|
||||||
paper_size = gtk_page_setup_get_paper_size (page_setup);
|
paper_size = gtk_page_setup_get_paper_size (page_setup);
|
||||||
w = gtk_paper_size_get_width (paper_size, GTK_UNIT_POINTS);
|
w = gtk_paper_size_get_width (paper_size, GTK_UNIT_POINTS);
|
||||||
@ -589,11 +590,11 @@ _gtk_print_operation_platform_backend_create_preview_surface (GtkPrintOperation
|
|||||||
|
|
||||||
void
|
void
|
||||||
_gtk_print_operation_platform_backend_resize_preview_surface (GtkPrintOperation *op,
|
_gtk_print_operation_platform_backend_resize_preview_surface (GtkPrintOperation *op,
|
||||||
GtkPageSetup *page_setup,
|
GtkPageSetup *page_setup,
|
||||||
cairo_surface_t *surface)
|
cairo_surface_t *surface)
|
||||||
{
|
{
|
||||||
GtkPaperSize *paper_size;
|
GtkPaperSize *paper_size;
|
||||||
double w, h;
|
gdouble w, h;
|
||||||
|
|
||||||
paper_size = gtk_page_setup_get_paper_size (page_setup);
|
paper_size = gtk_page_setup_get_paper_size (page_setup);
|
||||||
w = gtk_paper_size_get_width (paper_size, GTK_UNIT_POINTS);
|
w = gtk_paper_size_get_width (paper_size, GTK_UNIT_POINTS);
|
||||||
@ -611,7 +612,7 @@ _gtk_print_operation_platform_backend_run_dialog (GtkPrintOperation *op,
|
|||||||
GtkWidget *pd;
|
GtkWidget *pd;
|
||||||
PrintResponseData rdata;
|
PrintResponseData rdata;
|
||||||
gint response;
|
gint response;
|
||||||
const char *printer_name;
|
const gchar *printer_name;
|
||||||
|
|
||||||
rdata.op = op;
|
rdata.op = op;
|
||||||
rdata.do_print = FALSE;
|
rdata.do_print = FALSE;
|
||||||
@ -653,7 +654,8 @@ _gtk_print_operation_platform_backend_run_dialog (GtkPrintOperation *op,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct
|
||||||
|
{
|
||||||
GtkPageSetup *page_setup;
|
GtkPageSetup *page_setup;
|
||||||
GtkPageSetupDoneFunc done_cb;
|
GtkPageSetupDoneFunc done_cb;
|
||||||
gpointer data;
|
gpointer data;
|
||||||
@ -793,11 +795,12 @@ gtk_print_run_page_setup_dialog_async (GtkWindow *parent,
|
|||||||
gtk_window_present (GTK_WINDOW (dialog));
|
gtk_window_present (GTK_WINDOW (dialog));
|
||||||
}
|
}
|
||||||
|
|
||||||
struct _PrinterFinder {
|
struct _PrinterFinder
|
||||||
|
{
|
||||||
gboolean found_printer;
|
gboolean found_printer;
|
||||||
GFunc func;
|
GFunc func;
|
||||||
gpointer data;
|
gpointer data;
|
||||||
char *printer_name;
|
gchar *printer_name;
|
||||||
GList *backends;
|
GList *backends;
|
||||||
guint timeout_tag;
|
guint timeout_tag;
|
||||||
GtkPrinter *printer;
|
GtkPrinter *printer;
|
||||||
@ -874,7 +877,7 @@ printer_list_done_cb (GtkPrintBackend *backend,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
find_printer_init (PrinterFinder *finder,
|
find_printer_init (PrinterFinder *finder,
|
||||||
GtkPrintBackend *backend)
|
GtkPrintBackend *backend)
|
||||||
{
|
{
|
||||||
GList *list;
|
GList *list;
|
||||||
@ -902,12 +905,10 @@ find_printer_init (PrinterFinder *finder,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
g_signal_connect (backend,
|
g_signal_connect (backend, "printer-added",
|
||||||
"printer-added",
|
|
||||||
(GCallback) printer_added_cb,
|
(GCallback) printer_added_cb,
|
||||||
finder);
|
finder);
|
||||||
g_signal_connect (backend,
|
g_signal_connect (backend, "printer-list-done",
|
||||||
"printer-list-done",
|
|
||||||
(GCallback) printer_list_done_cb,
|
(GCallback) printer_list_done_cb,
|
||||||
finder);
|
finder);
|
||||||
}
|
}
|
||||||
@ -945,9 +946,9 @@ printer_finder_free (PrinterFinder *finder)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
find_printer (const char *printer,
|
find_printer (const gchar *printer,
|
||||||
GFunc func,
|
GFunc func,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
{
|
{
|
||||||
GList *node, *next;
|
GList *node, *next;
|
||||||
PrinterFinder *finder;
|
PrinterFinder *finder;
|
||||||
|
Reference in New Issue
Block a user