1 /* this file is part of evince, a gnome document viewer
3 * Copyright (C) 2005 Red Hat, Inc
5 * Evince is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * Evince is distributed in the hope that it will be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
24 #include "ev-document.h"
25 #include "ev-window.h"
26 #include "ev-file-exporter.h"
27 #include "ev-selection.h"
31 typedef struct _EvJob EvJob;
32 typedef struct _EvJobClass EvJobClass;
34 typedef struct _EvJobRender EvJobRender;
35 typedef struct _EvJobRenderClass EvJobRenderClass;
37 typedef struct _EvJobThumbnail EvJobThumbnail;
38 typedef struct _EvJobThumbnailClass EvJobThumbnailClass;
40 typedef struct _EvJobLinks EvJobLinks;
41 typedef struct _EvJobLinksClass EvJobLinksClass;
43 typedef struct _EvJobFonts EvJobFonts;
44 typedef struct _EvJobFontsClass EvJobFontsClass;
46 typedef struct _EvJobLoad EvJobLoad;
47 typedef struct _EvJobLoadClass EvJobLoadClass;
49 typedef struct _EvJobPrint EvJobPrint;
50 typedef struct _EvJobPrintClass EvJobPrintClass;
52 #define EV_TYPE_JOB (ev_job_get_type())
53 #define EV_JOB(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB, EvJob))
54 #define EV_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB, EvJobClass))
55 #define EV_IS_JOB(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB))
57 #define EV_TYPE_JOB_LINKS (ev_job_links_get_type())
58 #define EV_JOB_LINKS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_LINKS, EvJobLinks))
59 #define EV_JOB_LINKS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_LINKS, EvJobLinksClass))
60 #define EV_IS_JOB_LINKS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_LINKS))
62 #define EV_TYPE_JOB_RENDER (ev_job_render_get_type())
63 #define EV_JOB_RENDER(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_RENDER, EvJobRender))
64 #define EV_JOB_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_RENDER, EvJobRenderClass))
65 #define EV_IS_JOB_RENDER(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_RENDER))
67 #define EV_TYPE_JOB_THUMBNAIL (ev_job_thumbnail_get_type())
68 #define EV_JOB_THUMBNAIL(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_THUMBNAIL, EvJobThumbnail))
69 #define EV_JOB_THUMBNAIL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_THUMBNAIL, EvJobThumbnailClass))
70 #define EV_IS_JOB_THUMBNAIL(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_THUMBNAIL))
72 #define EV_TYPE_JOB_FONTS (ev_job_fonts_get_type())
73 #define EV_JOB_FONTS(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_FONTS, EvJobFonts))
74 #define EV_JOB_FONTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_FONTS, EvJobFontsClass))
75 #define EV_IS_JOB_FONTS(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_FONTS))
77 #define EV_TYPE_JOB_LOAD (ev_job_load_get_type())
78 #define EV_JOB_LOAD(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_LOAD, EvJobLoad))
79 #define EV_JOB_LOAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_LOAD, EvJobLoadClass))
80 #define EV_IS_JOB_LOAD(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_LOAD))
82 #define EV_TYPE_JOB_PRINT (ev_job_print_get_type())
83 #define EV_JOB_PRINT(object) (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_PRINT, EvJobPrint))
84 #define EV_JOB_PRINT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_PRINT, EvJobPrintClass))
85 #define EV_IS_JOB_PRINT(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_PRINT))
102 GObjectClass parent_class;
104 void (* finished) (EvJob *job);
114 struct _EvJobLinksClass
116 EvJobClass parent_class;
127 cairo_surface_t *surface;
130 GdkRegion *text_mapping;
131 GList *image_mapping;
132 GList *form_field_mapping;
134 cairo_surface_t *selection;
135 GdkRegion *selection_region;
136 EvRectangle selection_points;
137 EvSelectionStyle selection_style;
141 gint include_forms : 1;
142 gint include_links : 1;
143 gint include_text : 1;
144 gint include_selection : 1;
145 gint include_images : 1;
148 struct _EvJobRenderClass
150 EvJobClass parent_class;
152 void (* page_ready) (EvJobRender *job);
155 struct _EvJobThumbnail
160 GdkPixbuf *thumbnail;
163 struct _EvJobThumbnailClass
165 EvJobClass parent_class;
171 gboolean scan_completed;
174 struct _EvJobFontsClass
176 EvJobClass parent_class;
184 EvWindowRunMode mode;
189 struct _EvJobLoadClass
191 EvJobClass parent_class;
201 EvPrintRange *ranges;
203 EvPrintPageSet page_set;
205 gint pages_per_sheet;
210 EvFileExporterOrientation orientation;
213 struct _EvJobPrintClass
215 EvJobClass parent_class;
219 GType ev_job_get_type (void) G_GNUC_CONST;
220 void ev_job_finished (EvJob *job);
223 GType ev_job_links_get_type (void) G_GNUC_CONST;
224 EvJob *ev_job_links_new (EvDocument *document);
225 void ev_job_links_run (EvJobLinks *thumbnail);
228 GType ev_job_render_get_type (void) G_GNUC_CONST;
229 EvJob *ev_job_render_new (EvDocument *document,
233 EvRectangle *selection_points,
234 EvSelectionStyle selection_style,
237 gboolean include_forms,
238 gboolean include_links,
239 gboolean include_images,
240 gboolean include_text,
241 gboolean include_selection);
242 void ev_job_render_run (EvJobRender *thumbnail);
245 GType ev_job_thumbnail_get_type (void) G_GNUC_CONST;
246 EvJob *ev_job_thumbnail_new (EvDocument *document,
247 EvRenderContext *rc);
248 void ev_job_thumbnail_run (EvJobThumbnail *thumbnail);
251 GType ev_job_fonts_get_type (void) G_GNUC_CONST;
252 EvJob *ev_job_fonts_new (EvDocument *document);
253 void ev_job_fonts_run (EvJobFonts *fonts);
256 GType ev_job_load_get_type (void) G_GNUC_CONST;
257 EvJob *ev_job_load_new (const gchar *uri,
259 EvWindowRunMode mode);
260 void ev_job_load_set_uri (EvJobLoad *load,
262 void ev_job_load_run (EvJobLoad *load);
265 GType ev_job_print_get_type (void) G_GNUC_CONST;
266 EvJob *ev_job_print_new (EvDocument *document,
270 EvFileExporterOrientation orientation,
271 EvPrintRange *ranges,
273 EvPrintPageSet page_set,
274 gint pages_per_sheet,
278 void ev_job_print_run (EvJobPrint *print);
282 #endif /* __EV_JOBS_H__ */