X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-jobs.h;h=c6d73a1a3614453856dce2a975318ae448a83443;hb=5d949a64fcb3f3be02cb5ce4466043c8bdb33f31;hp=779c3736dbd9880913dab41e25b7edb80d864f4d;hpb=ca679febd93eef2a4a6afd99cbd7aee8ab537443;p=evince.git diff --git a/shell/ev-jobs.h b/shell/ev-jobs.h index 779c3736..c6d73a1a 100644 --- a/shell/ev-jobs.h +++ b/shell/ev-jobs.h @@ -23,6 +23,7 @@ #include #include "ev-document.h" #include "ev-window.h" +#include "ev-selection.h" G_BEGIN_DECLS @@ -44,6 +45,9 @@ typedef struct _EvJobFontsClass EvJobFontsClass; typedef struct _EvJobLoad EvJobLoad; typedef struct _EvJobLoadClass EvJobLoadClass; +typedef struct _EvJobSave EvJobSave; +typedef struct _EvJobSaveClass EvJobSaveClass; + typedef struct _EvJobPrint EvJobPrint; typedef struct _EvJobPrintClass EvJobPrintClass; @@ -77,10 +81,15 @@ typedef struct _EvJobPrintClass EvJobPrintClass; #define EV_JOB_LOAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_LOAD, EvJobLoadClass)) #define EV_IS_JOB_LOAD(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_LOAD)) -#define EV_TYPE_JOB_PRINT (ev_job_print_get_type()) -#define EV_JOB_PRINT(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_PRINT, EvJobPrint)) -#define EV_JOB_PRINT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_PRINT, EvJobPrintClass)) -#define EV_IS_JOB_PRINT(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_PRINT)) +#define EV_TYPE_JOB_SAVE (ev_job_save_get_type()) +#define EV_JOB_SAVE(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_SAVE, EvJobSave)) +#define EV_JOB_SAVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_SAVE, EvJobSaveClass)) +#define EV_IS_JOB_SAVE(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_SAVE)) + +#define EV_TYPE_JOB_PRINT (ev_job_print_get_type()) +#define EV_JOB_PRINT(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_PRINT, EvJobPrint)) +#define EV_JOB_PRINT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_PRINT, EvJobPrintClass)) +#define EV_IS_JOB_PRINT(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_PRINT)) typedef enum { EV_JOB_PRIORITY_LOW, @@ -119,20 +128,24 @@ struct _EvJobRender EvJob parent; EvRenderContext *rc; + gboolean page_ready; gint target_width; gint target_height; - GdkPixbuf *pixbuf; + cairo_surface_t *surface; GList *link_mapping; GdkRegion *text_mapping; GList *image_mapping; + GList *form_field_mapping; - GdkPixbuf *selection; + cairo_surface_t *selection; GdkRegion *selection_region; EvRectangle selection_points; + EvSelectionStyle selection_style; GdkColor base; GdkColor text; + gint include_forms : 1; gint include_links : 1; gint include_text : 1; gint include_selection : 1; @@ -142,15 +155,15 @@ struct _EvJobRender struct _EvJobRenderClass { EvJobClass parent_class; + + void (* page_ready) (EvJobRender *job); }; struct _EvJobThumbnail { EvJob parent; - gint page; - gint rotation; - gint requested_width; + EvRenderContext *rc; GdkPixbuf *thumbnail; }; @@ -176,6 +189,7 @@ struct _EvJobLoad EvLinkDest *dest; EvWindowRunMode mode; + gchar *search_string; GError *error; gchar *uri; }; @@ -185,6 +199,20 @@ struct _EvJobLoadClass EvJobClass parent_class; }; +struct _EvJobSave +{ + EvJob parent; + + GError *error; + gchar *uri; + gchar *document_uri; +}; + +struct _EvJobSaveClass +{ + EvJobClass parent_class; +}; + struct _EvJobPrint { EvJob parent; @@ -196,6 +224,7 @@ struct _EvJobPrint gint n_ranges; EvPrintPageSet page_set; gint copies; + gint pages_per_sheet; gboolean collate; gboolean reverse; gdouble width; @@ -223,8 +252,10 @@ EvJob *ev_job_render_new (EvDocument *document, gint width, gint height, EvRectangle *selection_points, + EvSelectionStyle selection_style, GdkColor *text, GdkColor *base, + gboolean include_forms, gboolean include_links, gboolean include_images, gboolean include_text, @@ -233,11 +264,9 @@ void ev_job_render_run (EvJobRender *thumbnail); /* EvJobThumbnail */ GType ev_job_thumbnail_get_type (void) G_GNUC_CONST; -EvJob *ev_job_thumbnail_new (EvDocument *document, - gint page, - int rotation, - gint requested_width); -void ev_job_thumbnail_run (EvJobThumbnail *thumbnail); +EvJob *ev_job_thumbnail_new (EvDocument *document, + EvRenderContext *rc); +void ev_job_thumbnail_run (EvJobThumbnail *thumbnail); /* EvJobFonts */ GType ev_job_fonts_get_type (void) G_GNUC_CONST; @@ -248,11 +277,19 @@ void ev_job_fonts_run (EvJobFonts *fonts); GType ev_job_load_get_type (void) G_GNUC_CONST; EvJob *ev_job_load_new (const gchar *uri, EvLinkDest *dest, - EvWindowRunMode mode); + EvWindowRunMode mode, + const gchar *search_string); void ev_job_load_set_uri (EvJobLoad *load, const gchar *uri); void ev_job_load_run (EvJobLoad *load); +/* EvJobSave */ +GType ev_job_save_get_type (void) G_GNUC_CONST; +EvJob *ev_job_save_new (EvDocument *document, + const gchar *uri, + const gchar *document_uri); +void ev_job_save_run (EvJobSave *save); + /* EvJobPrint */ GType ev_job_print_get_type (void) G_GNUC_CONST; EvJob *ev_job_print_new (EvDocument *document, @@ -262,6 +299,7 @@ EvJob *ev_job_print_new (EvDocument *document, EvPrintRange *ranges, gint n_ranges, EvPrintPageSet page_set, + gint pages_per_sheet, gint copies, gdouble collate, gdouble reverse);