X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-jobs.h;h=c63a32c449408d885d209c32ce3732b272219268;hb=f343927df4325959193353c52cff1ea4b20b2286;hp=d7f49c70306e9149a5a5da6ce3d94105c0612c2d;hpb=41229e9ef5135c93176acb6320f96abc7d624b0a;p=evince.git diff --git a/shell/ev-jobs.h b/shell/ev-jobs.h index d7f49c70..c63a32c4 100644 --- a/shell/ev-jobs.h +++ b/shell/ev-jobs.h @@ -22,6 +22,8 @@ #include #include "ev-document.h" +#include "ev-window.h" +#include "ev-selection.h" G_BEGIN_DECLS @@ -37,11 +39,17 @@ typedef struct _EvJobThumbnailClass EvJobThumbnailClass; typedef struct _EvJobLinks EvJobLinks; typedef struct _EvJobLinksClass EvJobLinksClass; +typedef struct _EvJobFonts EvJobFonts; +typedef struct _EvJobFontsClass EvJobFontsClass; + typedef struct _EvJobLoad EvJobLoad; typedef struct _EvJobLoadClass EvJobLoadClass; -typedef struct _EvJobFonts EvJobFonts; -typedef struct _EvJobFontsClass EvJobFontsClass; +typedef struct _EvJobSave EvJobSave; +typedef struct _EvJobSaveClass EvJobSaveClass; + +typedef struct _EvJobPrint EvJobPrint; +typedef struct _EvJobPrintClass EvJobPrintClass; #define EV_TYPE_JOB (ev_job_get_type()) #define EV_JOB(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB, EvJob)) @@ -63,15 +71,25 @@ typedef struct _EvJobFontsClass EvJobFontsClass; #define EV_JOB_THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_THUMBNAIL, EvJobThumbnailClass)) #define EV_IS_JOB_THUMBNAIL(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_THUMBNAIL)) +#define EV_TYPE_JOB_FONTS (ev_job_fonts_get_type()) +#define EV_JOB_FONTS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_FONTS, EvJobFonts)) +#define EV_JOB_FONTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_FONTS, EvJobFontsClass)) +#define EV_IS_JOB_FONTS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_FONTS)) + #define EV_TYPE_JOB_LOAD (ev_job_load_get_type()) #define EV_JOB_LOAD(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_LOAD, EvJobLoad)) #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_FONTS (ev_job_fonts_get_type()) -#define EV_JOB_FONTS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_FONTS, EvJobFonts)) -#define EV_JOB_FONTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_FONTS, EvJobFontsClass)) -#define EV_IS_JOB_FONTS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_FONTS)) +#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, @@ -105,29 +123,50 @@ struct _EvJobLinksClass EvJobClass parent_class; }; +typedef enum { + EV_RENDER_INCLUDE_NONE = 0, + EV_RENDER_INCLUDE_LINKS = 1 << 0, + EV_RENDER_INCLUDE_TEXT = 1 << 1, + EV_RENDER_INCLUDE_SELECTION = 1 << 2, + EV_RENDER_INCLUDE_IMAGES = 1 << 3, + EV_RENDER_INCLUDE_FORMS = 1 << 4, + EV_RENDER_INCLUDE_ALL = (1 << 5) - 1 +} EvRenderFlags; + struct _EvJobRender { EvJob parent; - EvRenderContext *rc; + gint page; + gint rotation; + gdouble scale; + + EvPage *ev_page; + 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_links : 1; - gint include_text : 1; - gint include_selection : 1; + EvRenderFlags flags; }; struct _EvJobRenderClass { EvJobClass parent_class; + + void (* page_ready) (EvJobRender *job); }; struct _EvJobThumbnail @@ -136,7 +175,8 @@ struct _EvJobThumbnail gint page; gint rotation; - gint requested_width; + gdouble scale; + GdkPixbuf *thumbnail; }; @@ -145,9 +185,24 @@ struct _EvJobThumbnailClass EvJobClass parent_class; }; +struct _EvJobFonts +{ + EvJob parent; + gboolean scan_completed; +}; + +struct _EvJobFontsClass +{ + EvJobClass parent_class; +}; + struct _EvJobLoad { EvJob parent; + + EvLinkDest *dest; + EvWindowRunMode mode; + gchar *search_string; GError *error; gchar *uri; }; @@ -157,57 +212,113 @@ struct _EvJobLoadClass EvJobClass parent_class; }; -struct _EvJobFonts +struct _EvJobSave { EvJob parent; - gboolean scan_completed; + + GError *error; + gchar *uri; + gchar *document_uri; }; -struct _EvJobFontsClass +struct _EvJobSaveClass { - EvJobClass parent_class; + EvJobClass parent_class; +}; + +struct _EvJobPrint +{ + EvJob parent; + + GError *error; + const gchar *format; + gchar *temp_file; + EvPrintRange *ranges; + gint n_ranges; + EvPrintPageSet page_set; + gint copies; + gint pages_per_sheet; + gboolean collate; + gboolean reverse; + gdouble width; + gdouble height; +}; + +struct _EvJobPrintClass +{ + EvJobClass parent_class; }; /* Base job class */ -GType ev_job_get_type (void); +GType ev_job_get_type (void) G_GNUC_CONST; void ev_job_finished (EvJob *job); /* EvJobLinks */ -GType ev_job_links_get_type (void); +GType ev_job_links_get_type (void) G_GNUC_CONST; EvJob *ev_job_links_new (EvDocument *document); void ev_job_links_run (EvJobLinks *thumbnail); /* EvJobRender */ -GType ev_job_render_get_type (void); +GType ev_job_render_get_type (void) G_GNUC_CONST; EvJob *ev_job_render_new (EvDocument *document, - EvRenderContext *rc, + gint page, + gint rotation, + gdouble scale, gint width, gint height, + EvRenderFlags flags); +void ev_job_render_set_selection_info (EvJobRender *job, EvRectangle *selection_points, - gboolean include_links, - gboolean include_text, - gboolean include_selection); + EvSelectionStyle selection_style, + GdkColor *text, + GdkColor *base); void ev_job_render_run (EvJobRender *thumbnail); /* EvJobThumbnail */ -GType ev_job_thumbnail_get_type (void); -EvJob *ev_job_thumbnail_new (EvDocument *document, - gint page, - int rotation, - gint requested_width); -void ev_job_thumbnail_run (EvJobThumbnail *thumbnail); - -/* EvJobLoad */ -GType ev_job_load_get_type (void); -EvJob *ev_job_load_new (EvDocument *document, - const gchar *uri); -void ev_job_load_run (EvJobLoad *load); +GType ev_job_thumbnail_get_type (void) G_GNUC_CONST; +EvJob *ev_job_thumbnail_new (EvDocument *document, + gint page, + gint rotation, + gdouble scale); +void ev_job_thumbnail_run (EvJobThumbnail *thumbnail); /* EvJobFonts */ -GType ev_job_fonts_get_type (void); +GType ev_job_fonts_get_type (void) G_GNUC_CONST; EvJob *ev_job_fonts_new (EvDocument *document); void ev_job_fonts_run (EvJobFonts *fonts); +/* EvJobLoad */ +GType ev_job_load_get_type (void) G_GNUC_CONST; +EvJob *ev_job_load_new (const gchar *uri, + EvLinkDest *dest, + 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, + const gchar *format, + gdouble width, + gdouble height, + EvPrintRange *ranges, + gint n_ranges, + EvPrintPageSet page_set, + gint pages_per_sheet, + gint copies, + gdouble collate, + gdouble reverse); +void ev_job_print_run (EvJobPrint *print); + G_END_DECLS #endif /* __EV_JOBS_H__ */