diff options
Diffstat (limited to 'backend/dvi/dvi-document.c')
-rw-r--r-- | backend/dvi/dvi-document.c | 108 |
1 files changed, 54 insertions, 54 deletions
diff --git a/backend/dvi/dvi-document.c b/backend/dvi/dvi-document.c index 6051b7b1..1a84fe72 100644 --- a/backend/dvi/dvi-document.c +++ b/backend/dvi/dvi-document.c @@ -54,11 +54,11 @@ struct _DviDocument DviContext *context; DviPageSpec *spec; DviParams *params; - + /* To let document scale we should remember width and height */ double base_width; double base_height; - + gchar *uri; /* PDF exporter */ @@ -87,11 +87,11 @@ dvi_document_load (EvDocument *document, { gchar *filename; DviDocument *dvi_document = DVI_DOCUMENT(document); - + filename = g_filename_from_uri (uri, NULL, error); if (!filename) return FALSE; - + g_mutex_lock (&dvi_context_mutex); if (dvi_document->context) mdvi_destroy_context (dvi_document->context); @@ -99,7 +99,7 @@ dvi_document_load (EvDocument *document, dvi_document->context = mdvi_init_context(dvi_document->params, dvi_document->spec, filename); g_mutex_unlock (&dvi_context_mutex); g_free (filename); - + if (!dvi_document->context) { g_set_error_literal (error, EV_DOCUMENT_ERROR, @@ -107,19 +107,19 @@ dvi_document_load (EvDocument *document, _("DVI document has incorrect format")); return FALSE; } - + mdvi_cairo_device_init (&dvi_document->context->device); - - - dvi_document->base_width = dvi_document->context->dvi_page_w * dvi_document->context->params.conv + + + dvi_document->base_width = dvi_document->context->dvi_page_w * dvi_document->context->params.conv + 2 * unit2pix(dvi_document->params->dpi, MDVI_HMARGIN) / dvi_document->params->hshrink; - - dvi_document->base_height = dvi_document->context->dvi_page_h * dvi_document->context->params.vconv + + dvi_document->base_height = dvi_document->context->dvi_page_h * dvi_document->context->params.vconv + 2 * unit2pix(dvi_document->params->vdpi, MDVI_VMARGIN) / dvi_document->params->vshrink; - + g_free (dvi_document->uri); dvi_document->uri = g_strdup (uri); - + return TRUE; } @@ -138,7 +138,7 @@ static int dvi_document_get_n_pages (EvDocument *document) { DviDocument *dvi_document = DVI_DOCUMENT (document); - + return dvi_document->context->npages; } @@ -148,7 +148,7 @@ dvi_document_get_page_size (EvDocument *document, double *width, double *height) { - DviDocument *dvi_document = DVI_DOCUMENT (document); + DviDocument *dvi_document = DVI_DOCUMENT (document); *width = dvi_document->base_width; *height = dvi_document->base_height;; @@ -165,15 +165,15 @@ dvi_document_render (EvDocument *document, gint proposed_width, proposed_height; gint xmargin = 0, ymargin = 0; - /* We should protect our context since it's not - * thread safe. The work to the future - + /* We should protect our context since it's not + * thread safe. The work to the future - * let context render page independently */ g_mutex_lock (&dvi_context_mutex); - + mdvi_setpage (dvi_document->context, rc->page->index); - - mdvi_set_shrink (dvi_document->context, + + mdvi_set_shrink (dvi_document->context, (int)((dvi_document->params->hshrink - 1) / rc->scale) + 1, (int)((dvi_document->params->vshrink - 1) / rc->scale) + 1); @@ -181,12 +181,12 @@ dvi_document_render (EvDocument *document, required_height = dvi_document->base_height * rc->scale + 0.5; proposed_width = dvi_document->context->dvi_page_w * dvi_document->context->params.conv; proposed_height = dvi_document->context->dvi_page_h * dvi_document->context->params.vconv; - + if (required_width >= proposed_width) xmargin = (required_width - proposed_width) / 2; if (required_height >= proposed_height) ymargin = (required_height - proposed_height) / 2; - + mdvi_cairo_device_set_margins (&dvi_document->context->device, xmargin, ymargin); mdvi_cairo_device_set_scale (&dvi_document->context->device, rc->scale); mdvi_cairo_device_render (dvi_document->context); @@ -196,18 +196,18 @@ dvi_document_render (EvDocument *document, rotated_surface = ev_document_misc_surface_rotate_and_scale (surface, required_width, - required_height, + required_height, rc->rotation); cairo_surface_destroy (surface); - + return rotated_surface; } static void dvi_document_finalize (GObject *object) -{ +{ DviDocument *dvi_document = DVI_DOCUMENT(object); - + g_mutex_lock (&dvi_context_mutex); if (dvi_document->context) { mdvi_cairo_device_free (&dvi_document->context->device); @@ -220,12 +220,12 @@ dvi_document_finalize (GObject *object) if (dvi_document->exporter_filename) g_free (dvi_document->exporter_filename); - + if (dvi_document->exporter_opts) g_string_free (dvi_document->exporter_opts, TRUE); g_free (dvi_document->uri); - + G_OBJECT_CLASS (dvi_document_parent_class)->finalize (object); } @@ -258,10 +258,10 @@ dvi_document_class_init (DviDocumentClass *klass) static void dvi_document_thumbnails_get_dimensions (EvDocumentThumbnails *document, - EvRenderContext *rc, + EvRenderContext *rc, gint *width, gint *height) -{ +{ DviDocument *dvi_document = DVI_DOCUMENT (document); gdouble page_width = dvi_document->base_width; gdouble page_height = dvi_document->base_height; @@ -277,7 +277,7 @@ dvi_document_thumbnails_get_dimensions (EvDocumentThumbnails *document, static GdkPixbuf * dvi_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document, - EvRenderContext *rc, + EvRenderContext *rc, gboolean border) { DviDocument *dvi_document = DVI_DOCUMENT (document); @@ -291,24 +291,24 @@ dvi_document_thumbnails_get_thumbnail (EvDocumentThumbnails *document, thumb_height = (gint) (dvi_document->base_height * rc->scale); g_mutex_lock (&dvi_context_mutex); - + mdvi_setpage (dvi_document->context, rc->page->index); - mdvi_set_shrink (dvi_document->context, + mdvi_set_shrink (dvi_document->context, (int)dvi_document->base_width * dvi_document->params->hshrink / thumb_width, (int)dvi_document->base_height * dvi_document->params->vshrink / thumb_height); proposed_width = dvi_document->context->dvi_page_w * dvi_document->context->params.conv; proposed_height = dvi_document->context->dvi_page_h * dvi_document->context->params.vconv; - + if (border) { - mdvi_cairo_device_set_margins (&dvi_document->context->device, + mdvi_cairo_device_set_margins (&dvi_document->context->device, MAX (thumb_width - proposed_width, 0) / 2, - MAX (thumb_height - proposed_height, 0) / 2); + MAX (thumb_height - proposed_height, 0) / 2); } else { - mdvi_cairo_device_set_margins (&dvi_document->context->device, + mdvi_cairo_device_set_margins (&dvi_document->context->device, MAX (thumb_width - proposed_width - 2, 0) / 2, - MAX (thumb_height - proposed_height - 2, 0) / 2); + MAX (thumb_height - proposed_height - 2, 0) / 2); } mdvi_cairo_device_set_scale (&dvi_document->context->device, rc->scale); @@ -345,11 +345,11 @@ dvi_document_file_exporter_begin (EvFileExporter *exporter, EvFileExporterContext *fc) { DviDocument *dvi_document = DVI_DOCUMENT(exporter); - + if (dvi_document->exporter_filename) - g_free (dvi_document->exporter_filename); + g_free (dvi_document->exporter_filename); dvi_document->exporter_filename = g_strdup (fc->filename); - + if (dvi_document->exporter_opts) { g_string_free (dvi_document->exporter_opts, TRUE); } @@ -372,16 +372,16 @@ dvi_document_file_exporter_end (EvFileExporter *exporter) gint exit_stat; GError *err = NULL; gboolean success; - + DviDocument *dvi_document = DVI_DOCUMENT(exporter); gchar* quoted_filename = g_shell_quote (dvi_document->context->filename); - + command_line = g_strdup_printf ("dvipdfm %s -o %s %s", /* dvipdfm -s 1,2,.., -o exporter_filename dvi_filename */ dvi_document->exporter_opts->str, dvi_document->exporter_filename, quoted_filename); g_free (quoted_filename); - + success = g_spawn_command_line_sync (command_line, NULL, NULL, @@ -469,7 +469,7 @@ hsb2rgb (float h, float s, float v, guchar *red, guchar *green, guchar *blue) *red = (guchar)floor(r * 255.0); *green = (guchar)floor(g * 255.0); *blue = (guchar)floor(b * 255.0); - + return TRUE; } @@ -498,7 +498,7 @@ dvi_document_do_color_special (DviContext *dvi, const char *prefix, const char * } else if (strncmp (arg, "push", 4) == 0) { /* Find color source: Named, CMYK or RGB */ const char *tmp = arg + 4; - + while (isspace (*tmp)) tmp++; if (!strncmp ("rgb", tmp, 3)) { @@ -506,7 +506,7 @@ dvi_document_do_color_special (DviContext *dvi, const char *prefix, const char * guchar red, green, blue; parse_color (tmp + 4, rgb, 3); - + red = 255 * rgb[0]; green = 255 * rgb[1]; blue = 255 * rgb[2]; @@ -517,14 +517,14 @@ dvi_document_do_color_special (DviContext *dvi, const char *prefix, const char * guchar red, green, blue; parse_color (tmp + 4, hsb, 3); - + if (hsb2rgb (hsb[0], hsb[1], hsb[2], &red, &green, &blue)) mdvi_push_color (dvi, RGB2ULONG (red, green, blue), 0xFFFFFFFF); } else if (!strncmp ("cmyk", tmp, 4)) { gdouble cmyk[4]; double r, g, b; guchar red, green, blue; - + parse_color (tmp + 5, cmyk, 4); r = 1.0 - cmyk[0] - cmyk[3]; @@ -540,7 +540,7 @@ dvi_document_do_color_special (DviContext *dvi, const char *prefix, const char * red = r * 255 + 0.5; green = g * 255 + 0.5; blue = b * 255 + 0.5; - + mdvi_push_color (dvi, RGB2ULONG (red, green, blue), 0xFFFFFFFF); } else if (!strncmp ("gray ", tmp, 5)) { gdouble gray; @@ -553,7 +553,7 @@ dvi_document_do_color_special (DviContext *dvi, const char *prefix, const char * mdvi_push_color (dvi, RGB2ULONG (rgb, rgb, rgb), 0xFFFFFFFF); } else { GdkColor color; - + if (gdk_color_parse (tmp, &color)) { guchar red, green, blue; @@ -569,8 +569,8 @@ dvi_document_do_color_special (DviContext *dvi, const char *prefix, const char * static void dvi_document_init_params (DviDocument *dvi_document) -{ - dvi_document->params = g_new0 (DviParams, 1); +{ + dvi_document->params = g_new0 (DviParams, 1); dvi_document->params->dpi = MDVI_DPI; dvi_document->params->vdpi = MDVI_VDPI; @@ -585,7 +585,7 @@ dvi_document_init_params (DviDocument *dvi_document) dvi_document->params->orientation = MDVI_ORIENT_TBLR; dvi_document->spec = NULL; - + dvi_document->params->bg = 0xffffffff; dvi_document->params->fg = 0xff000000; } |