X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=libview%2Fev-jobs.h;h=7596d76425e0a4cfadd66b367ba67a82326c5b11;hb=a90e38bd4aab8013c402e55753275f5b3408e103;hp=fc577c1ed807fad243f7d1dc65a88cd7e410ed2d;hpb=4912987303aefef0d02a45726b75e5fdae043982;p=evince.git diff --git a/libview/ev-jobs.h b/libview/ev-jobs.h index fc577c1e..7596d764 100644 --- a/libview/ev-jobs.h +++ b/libview/ev-jobs.h @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #if !defined (__EV_EVINCE_VIEW_H_INSIDE__) && !defined (EVINCE_COMPILATION) @@ -27,6 +27,7 @@ #include #include +#include #include @@ -38,6 +39,9 @@ typedef struct _EvJobClass EvJobClass; typedef struct _EvJobRender EvJobRender; typedef struct _EvJobRenderClass EvJobRenderClass; +typedef struct _EvJobPageData EvJobPageData; +typedef struct _EvJobPageDataClass EvJobPageDataClass; + typedef struct _EvJobThumbnail EvJobThumbnail; typedef struct _EvJobThumbnailClass EvJobThumbnailClass; @@ -47,6 +51,9 @@ typedef struct _EvJobLinksClass EvJobLinksClass; typedef struct _EvJobAttachments EvJobAttachments; typedef struct _EvJobAttachmentsClass EvJobAttachmentsClass; +typedef struct _EvJobAnnots EvJobAnnots; +typedef struct _EvJobAnnotsClass EvJobAnnotsClass; + typedef struct _EvJobFonts EvJobFonts; typedef struct _EvJobFontsClass EvJobFontsClass; @@ -65,6 +72,9 @@ typedef struct _EvJobLayersClass EvJobLayersClass; typedef struct _EvJobExport EvJobExport; typedef struct _EvJobExportClass EvJobExportClass; +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_CHECK_CLASS_CAST((klass), EV_TYPE_JOB, EvJobClass)) @@ -81,11 +91,21 @@ typedef struct _EvJobExportClass EvJobExportClass; #define EV_JOB_ATTACHMENTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_ATTACHMENTS, EvJobAttachmentsClass)) #define EV_IS_JOB_ATTACHMENTS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_ATTACHMENTS)) +#define EV_TYPE_JOB_ANNOTS (ev_job_annots_get_type()) +#define EV_JOB_ANNOTS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_ANNOTS, EvJobAnnots)) +#define EV_JOB_ANNOTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_ANNOTS, EvJobAnnotsClass)) +#define EV_IS_JOB_ANNOTS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_ANNOTS)) + #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_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_PAGE_DATA (ev_job_page_data_get_type()) +#define EV_JOB_PAGE_DATA(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_PAGE_DATA, EvJobPageData)) +#define EV_JOB_PAGE_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_PAGE_DATA, EvJobPageDataClass)) +#define EV_IS_JOB_PAGE_DATA(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_PAGE_DATA)) + #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_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_THUMBNAIL, EvJobThumbnailClass)) @@ -121,6 +141,11 @@ typedef struct _EvJobExportClass EvJobExportClass; #define EV_JOB_EXPORT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_EXPORT, EvJobExportClass)) #define EV_IS_JOB_EXPORT(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_EXPORT)) +#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_RUN_THREAD, EV_JOB_RUN_MAIN_LOOP @@ -180,15 +205,17 @@ struct _EvJobAttachmentsClass 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 _EvJobAnnots +{ + EvJob parent; + + GList *annots; +}; + +struct _EvJobAnnotsClass +{ + EvJobClass parent_class; +}; struct _EvJobRender { @@ -198,32 +225,57 @@ struct _EvJobRender gint rotation; gdouble scale; - EvPage *ev_page; gboolean page_ready; gint target_width; gint target_height; cairo_surface_t *surface; - GList *link_mapping; - GdkRegion *text_mapping; - GList *image_mapping; - GList *form_field_mapping; - + gboolean include_selection; cairo_surface_t *selection; - GdkRegion *selection_region; + cairo_region_t *selection_region; EvRectangle selection_points; EvSelectionStyle selection_style; GdkColor base; - GdkColor text; - - EvRenderFlags flags; + GdkColor text; }; struct _EvJobRenderClass { EvJobClass parent_class; +}; + +typedef enum { + EV_PAGE_DATA_INCLUDE_NONE = 0, + EV_PAGE_DATA_INCLUDE_LINKS = 1 << 0, + EV_PAGE_DATA_INCLUDE_TEXT = 1 << 1, + EV_PAGE_DATA_INCLUDE_TEXT_MAPPING = 1 << 2, + EV_PAGE_DATA_INCLUDE_TEXT_LAYOUT = 1 << 3, + EV_PAGE_DATA_INCLUDE_IMAGES = 1 << 4, + EV_PAGE_DATA_INCLUDE_FORMS = 1 << 5, + EV_PAGE_DATA_INCLUDE_ANNOTS = 1 << 6, + EV_PAGE_DATA_INCLUDE_ALL = (1 << 7) - 1 +} EvJobPageDataFlags; + +struct _EvJobPageData +{ + EvJob parent; + + gint page; + EvJobPageDataFlags flags; - void (* page_ready) (EvJobRender *job); + EvMappingList *link_mapping; + EvMappingList *image_mapping; + EvMappingList *form_field_mapping; + EvMappingList *annot_mapping; + cairo_region_t *text_mapping; + gchar *text; + EvRectangle *text_layout; + guint text_layout_length; +}; + +struct _EvJobPageDataClass +{ + EvJobClass parent_class; }; struct _EvJobThumbnail @@ -330,6 +382,19 @@ struct _EvJobExportClass EvJobClass parent_class; }; +struct _EvJobPrint +{ + EvJob parent; + + gint page; + cairo_t *cr; +}; + +struct _EvJobPrintClass +{ + EvJobClass parent_class; +}; + /* Base job class */ GType ev_job_get_type (void) G_GNUC_CONST; gboolean ev_job_run (EvJob *job); @@ -342,7 +407,6 @@ void ev_job_failed (EvJob *job, void ev_job_failed_from_error (EvJob *job, GError *error); void ev_job_succeeded (EvJob *job); -gboolean ev_job_is_cancelled (EvJob *job); gboolean ev_job_is_finished (EvJob *job); gboolean ev_job_is_failed (EvJob *job); EvJobRunMode ev_job_get_run_mode (EvJob *job); @@ -357,6 +421,10 @@ EvJob *ev_job_links_new (EvDocument *document); GType ev_job_attachments_get_type (void) G_GNUC_CONST; EvJob *ev_job_attachments_new (EvDocument *document); +/* EvJobAnnots */ +GType ev_job_annots_get_type (void) G_GNUC_CONST; +EvJob *ev_job_annots_new (EvDocument *document); + /* EvJobRender */ GType ev_job_render_get_type (void) G_GNUC_CONST; EvJob *ev_job_render_new (EvDocument *document, @@ -364,13 +432,18 @@ EvJob *ev_job_render_new (EvDocument *document, gint rotation, gdouble scale, gint width, - gint height, - EvRenderFlags flags); + gint height); void ev_job_render_set_selection_info (EvJobRender *job, EvRectangle *selection_points, EvSelectionStyle selection_style, GdkColor *text, GdkColor *base); +/* EvJobPageData */ +GType ev_job_page_data_get_type (void) G_GNUC_CONST; +EvJob *ev_job_page_data_new (EvDocument *document, + gint page, + EvJobPageDataFlags flags); + /* EvJobThumbnail */ GType ev_job_thumbnail_get_type (void) G_GNUC_CONST; EvJob *ev_job_thumbnail_new (EvDocument *document, @@ -416,6 +489,13 @@ GType ev_job_export_get_type (void) G_GNUC_CONST; EvJob *ev_job_export_new (EvDocument *document); void ev_job_export_set_page (EvJobExport *job, gint page); +/* EvJobPrint */ +GType ev_job_print_get_type (void) G_GNUC_CONST; +EvJob *ev_job_print_new (EvDocument *document); +void ev_job_print_set_page (EvJobPrint *job, + gint page); +void ev_job_print_set_cairo (EvJobPrint *job, + cairo_t *cr); G_END_DECLS