X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-jobs.h;h=e4497f28ae249b9c0a0678e0670262f7d7b9ec96;hb=81f8b8c70408c541a7b9a98a8cbd905365d510c0;hp=900d040566cf398efec8094a3795dd6843153145;hpb=7fef38d9e59026334152230f1cd847e163e8457c;p=evince.git diff --git a/shell/ev-jobs.h b/shell/ev-jobs.h index 900d0405..e4497f28 100644 --- a/shell/ev-jobs.h +++ b/shell/ev-jobs.h @@ -22,6 +22,7 @@ #include #include "ev-document.h" +#include "ev-window.h" G_BEGIN_DECLS @@ -37,42 +38,50 @@ typedef struct _EvJobThumbnailClass EvJobThumbnailClass; typedef struct _EvJobLinks EvJobLinks; typedef struct _EvJobLinksClass EvJobLinksClass; -typedef struct _EvJobLoad EvJobLoad; -typedef struct _EvJobLoadClass EvJobLoadClass; - typedef struct _EvJobFonts EvJobFonts; typedef struct _EvJobFontsClass EvJobFontsClass; +typedef struct _EvJobXfer EvJobXfer; +typedef struct _EvJobXferClass EvJobXferClass; + +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)) -#define EV_JOB_CLASS(klass) (G_TYPE_CHACK_CLASS_CAST((klass), EV_TYPE_JOB, EvJobClass)) +#define EV_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB, EvJobClass)) #define EV_IS_JOB(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB)) #define EV_TYPE_JOB_LINKS (ev_job_links_get_type()) #define EV_JOB_LINKS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_LINKS, EvJobLinks)) -#define EV_JOB_LINKS_CLASS(klass) (G_TYPE_CHACK_CLASS_CAST((klass), EV_TYPE_JOB_LINKS, EvJobLinksClass)) +#define EV_JOB_LINKS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_LINKS, EvJobLinksClass)) #define EV_IS_JOB_LINKS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_LINKS)) #define EV_TYPE_JOB_RENDER (ev_job_render_get_type()) #define EV_JOB_RENDER(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_RENDER, EvJobRender)) -#define EV_JOB_RENDER_CLASS(klass) (G_TYPE_CHACK_CLASS_CAST((klass), EV_TYPE_JOB_RENDER, EvJobRenderClass)) +#define EV_JOB_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_RENDER, EvJobRenderClass)) #define EV_IS_JOB_RENDER(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_RENDER)) #define EV_TYPE_JOB_THUMBNAIL (ev_job_thumbnail_get_type()) #define EV_JOB_THUMBNAIL(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_THUMBNAIL, EvJobThumbnail)) -#define EV_JOB_THUMBNAIL_CLASS(klass) (G_TYPE_CHACK_CLASS_CAST((klass), EV_TYPE_JOB_THUMBNAIL, EvJobThumbnailClass)) +#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_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_CHACK_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_CHACK_CLASS_CAST((klass), EV_TYPE_JOB_FONTS, EvJobFontsClass)) +#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_XFER (ev_job_xfer_get_type()) +#define EV_JOB_XFER(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_XFER, EvJobXfer)) +#define EV_JOB_XFER_CLASS(klass) (G_TYPE_CHACK_CLASS_CAST((klass), EV_TYPE_JOB_XFER, EvJobXferClass)) +#define EV_IS_JOB_XFER(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_XFER)) + +#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_CHACK_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, EV_JOB_PRIORITY_HIGH, @@ -109,13 +118,23 @@ struct _EvJobRender { EvJob parent; - gint page; - double scale; + EvRenderContext *rc; gint target_width; gint target_height; GdkPixbuf *pixbuf; + GList *link_mapping; - gboolean include_links; + GdkRegion *text_mapping; + + GdkPixbuf *selection; + GdkRegion *selection_region; + EvRectangle selection_points; + GdkColor base; + GdkColor text; + + gint include_links : 1; + gint include_text : 1; + gint include_selection : 1; }; struct _EvJobRenderClass @@ -128,6 +147,7 @@ struct _EvJobThumbnail EvJob parent; gint page; + gint rotation; gint requested_width; GdkPixbuf *thumbnail; }; @@ -137,66 +157,101 @@ struct _EvJobThumbnailClass EvJobClass parent_class; }; -struct _EvJobLoad +struct _EvJobFonts { EvJob parent; + gboolean scan_completed; +}; + +struct _EvJobFontsClass +{ + EvJobClass parent_class; +}; + +struct _EvJobXfer +{ + EvJob parent; + EvLinkDest *dest; + EvWindowRunMode mode; GError *error; - gchar *uri; + char *uri; + char *local_uri; }; -struct _EvJobLoadClass +struct _EvJobXferClass { EvJobClass parent_class; }; -struct _EvJobFonts +struct _EvJobPrint { EvJob parent; - gboolean scan_completed; + + GError *error; + gchar *temp_file; + EvPrintRange *ranges; + gint n_ranges; + gdouble width; + gdouble height; }; -struct _EvJobFontsClass +struct _EvJobPrintClass { - EvJobClass parent_class; + 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); -EvJob *ev_job_render_new (EvDocument *document, - gint page, - double scale, - gint width, - gint height, - gboolean include_links); -void ev_job_render_run (EvJobRender *thumbnail); +GType ev_job_render_get_type (void) G_GNUC_CONST; +EvJob *ev_job_render_new (EvDocument *document, + EvRenderContext *rc, + gint width, + gint height, + EvRectangle *selection_points, + GdkColor *text, + GdkColor *base, + gboolean include_links, + gboolean include_text, + gboolean include_selection); +void ev_job_render_run (EvJobRender *thumbnail); /* EvJobThumbnail */ -GType ev_job_thumbnail_get_type (void); +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); -/* 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); - /* 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); +/* EvJobXfer */ +GType ev_job_xfer_get_type (void) G_GNUC_CONST; +EvJob *ev_job_xfer_new (const gchar *uri, + EvLinkDest *dest, + EvWindowRunMode mode); +void ev_job_xfer_run (EvJobXfer *xfer); + +/* EvJobPrint */ +GType ev_job_print_get_type (void) G_GNUC_CONST; +EvJob *ev_job_print_new (EvDocument *document, + EvPrintRange *ranges, + gint n_ranges, + gdouble width, + gdouble height); +void ev_job_print_run (EvJobPrint *print); + G_END_DECLS #endif /* __EV_JOBS_H__ */