~ubuntu-branches/ubuntu/precise/evince/precise-updates

« back to all changes in this revision

Viewing changes to shell/ev-jobs.h

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2009-01-19 10:39:43 UTC
  • mto: (1.6.1 upstream)
  • mto: This revision was merged to the branch mainline in revision 70.
  • Revision ID: james.westby@ubuntu.com-20090119103943-dhe56g9rmuq7khys
Tags: upstream-2.25.5
ImportĀ upstreamĀ versionĀ 2.25.5

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* this file is part of evince, a gnome document viewer
2
 
 *
3
 
 *  Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org>
4
 
 *  Copyright (C) 2005 Red Hat, Inc
5
 
 *
6
 
 * Evince is free software; you can redistribute it and/or modify it
7
 
 * under the terms of the GNU General Public License as published by
8
 
 * the Free Software Foundation; either version 2 of the License, or
9
 
 * (at your option) any later version.
10
 
 *
11
 
 * Evince is distributed in the hope that it will be useful, but
12
 
 * WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 
 * General Public License for more details.
15
 
 *
16
 
 * You should have received a copy of the GNU General Public License
17
 
 * along with this program; if not, write to the Free Software
18
 
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
19
 
 */
20
 
 
21
 
#ifndef __EV_JOBS_H__
22
 
#define __EV_JOBS_H__
23
 
 
24
 
#include <gio/gio.h>
25
 
#include <gtk/gtk.h>
26
 
 
27
 
#include "ev-document.h"
28
 
#include "ev-selection.h"
29
 
#include "ev-render-context.h"
30
 
#include "ev-window.h"
31
 
 
32
 
G_BEGIN_DECLS
33
 
 
34
 
typedef struct _EvJob EvJob;
35
 
typedef struct _EvJobClass EvJobClass;
36
 
 
37
 
typedef struct _EvJobRender EvJobRender;
38
 
typedef struct _EvJobRenderClass EvJobRenderClass;
39
 
 
40
 
typedef struct _EvJobThumbnail EvJobThumbnail;
41
 
typedef struct _EvJobThumbnailClass EvJobThumbnailClass;
42
 
 
43
 
typedef struct _EvJobLinks EvJobLinks;
44
 
typedef struct _EvJobLinksClass EvJobLinksClass;
45
 
 
46
 
typedef struct _EvJobAttachments EvJobAttachments;
47
 
typedef struct _EvJobAttachmentsClass EvJobAttachmentsClass;
48
 
 
49
 
typedef struct _EvJobFonts EvJobFonts;
50
 
typedef struct _EvJobFontsClass EvJobFontsClass;
51
 
 
52
 
typedef struct _EvJobLoad EvJobLoad;
53
 
typedef struct _EvJobLoadClass EvJobLoadClass;
54
 
 
55
 
typedef struct _EvJobSave EvJobSave;
56
 
typedef struct _EvJobSaveClass EvJobSaveClass;
57
 
 
58
 
typedef struct _EvJobFind EvJobFind;
59
 
typedef struct _EvJobFindClass EvJobFindClass;
60
 
 
61
 
typedef struct _EvJobLayers EvJobLayers;
62
 
typedef struct _EvJobLayersClass EvJobLayersClass;
63
 
 
64
 
typedef struct _EvJobExport EvJobExport;
65
 
typedef struct _EvJobExportClass EvJobExportClass;
66
 
 
67
 
#define EV_TYPE_JOB                          (ev_job_get_type())
68
 
#define EV_JOB(object)                       (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB, EvJob))
69
 
#define EV_JOB_CLASS(klass)                  (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB, EvJobClass))
70
 
#define EV_IS_JOB(object)                    (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB))
71
 
#define EV_JOB_GET_CLASS(object)             (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_JOB, EvJobClass))
72
 
 
73
 
#define EV_TYPE_JOB_LINKS                    (ev_job_links_get_type())
74
 
#define EV_JOB_LINKS(object)                 (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_LINKS, EvJobLinks))
75
 
#define EV_JOB_LINKS_CLASS(klass)            (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_LINKS, EvJobLinksClass))
76
 
#define EV_IS_JOB_LINKS(object)              (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_LINKS))
77
 
 
78
 
#define EV_TYPE_JOB_ATTACHMENTS              (ev_job_attachments_get_type())
79
 
#define EV_JOB_ATTACHMENTS(object)           (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_ATTACHMENTS, EvJobAttachments))
80
 
#define EV_JOB_ATTACHMENTS_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_ATTACHMENTS, EvJobAttachmentsClass))
81
 
#define EV_IS_JOB_ATTACHMENTS(object)        (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_ATTACHMENTS))
82
 
 
83
 
#define EV_TYPE_JOB_RENDER                   (ev_job_render_get_type())
84
 
#define EV_JOB_RENDER(object)                (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_RENDER, EvJobRender))
85
 
#define EV_JOB_RENDER_CLASS(klass)           (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_RENDER, EvJobRenderClass))
86
 
#define EV_IS_JOB_RENDER(object)             (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_RENDER))
87
 
 
88
 
#define EV_TYPE_JOB_THUMBNAIL                (ev_job_thumbnail_get_type())
89
 
#define EV_JOB_THUMBNAIL(object)             (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_THUMBNAIL, EvJobThumbnail))
90
 
#define EV_JOB_THUMBNAIL_CLASS(klass)        (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_THUMBNAIL, EvJobThumbnailClass))
91
 
#define EV_IS_JOB_THUMBNAIL(object)          (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_THUMBNAIL))
92
 
 
93
 
#define EV_TYPE_JOB_FONTS                    (ev_job_fonts_get_type())
94
 
#define EV_JOB_FONTS(object)                 (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_FONTS, EvJobFonts))
95
 
#define EV_JOB_FONTS_CLASS(klass)            (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_FONTS, EvJobFontsClass))
96
 
#define EV_IS_JOB_FONTS(object)              (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_FONTS))
97
 
 
98
 
#define EV_TYPE_JOB_LOAD                     (ev_job_load_get_type())
99
 
#define EV_JOB_LOAD(object)                  (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_LOAD, EvJobLoad))
100
 
#define EV_JOB_LOAD_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_LOAD, EvJobLoadClass))
101
 
#define EV_IS_JOB_LOAD(object)               (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_LOAD))
102
 
 
103
 
#define EV_TYPE_JOB_SAVE                     (ev_job_save_get_type())
104
 
#define EV_JOB_SAVE(object)                  (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_SAVE, EvJobSave))
105
 
#define EV_JOB_SAVE_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_SAVE, EvJobSaveClass))
106
 
#define EV_IS_JOB_SAVE(object)               (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_SAVE))
107
 
 
108
 
#define EV_TYPE_JOB_FIND                     (ev_job_find_get_type())
109
 
#define EV_JOB_FIND(object)                  (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_FIND, EvJobFind))
110
 
#define EV_JOB_FIND_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_FIND, EvJobFindClass))
111
 
#define EV_IS_JOB_FIND(object)               (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_FIND))
112
 
 
113
 
#define EV_TYPE_JOB_LAYERS                   (ev_job_layers_get_type())
114
 
#define EV_JOB_LAYERS(object)                (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_LAYERS, EvJobLayers))
115
 
#define EV_JOB_LAYERS_CLASS(klass)           (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_LAYERS, EvJobLayersClass))
116
 
#define EV_IS_JOB_LAYERS(object)             (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_LAYERS))
117
 
 
118
 
#define EV_TYPE_JOB_EXPORT                    (ev_job_export_get_type())
119
 
#define EV_JOB_EXPORT(object)                 (G_TYPE_CHECK_INSTANCE_CAST((object), EV_TYPE_JOB_EXPORT, EvJobExport))
120
 
#define EV_JOB_EXPORT_CLASS(klass)            (G_TYPE_CHECK_CLASS_CAST((klass), EV_TYPE_JOB_EXPORT, EvJobExportClass))
121
 
#define EV_IS_JOB_EXPORT(object)              (G_TYPE_CHECK_INSTANCE_TYPE((object), EV_TYPE_JOB_EXPORT))
122
 
 
123
 
typedef enum {
124
 
        EV_JOB_RUN_THREAD,
125
 
        EV_JOB_RUN_MAIN_LOOP
126
 
} EvJobRunMode;
127
 
 
128
 
struct _EvJob
129
 
{
130
 
        GObject parent;
131
 
        
132
 
        EvDocument *document;
133
 
 
134
 
        EvJobRunMode run_mode;
135
 
 
136
 
        guint cancelled : 1;
137
 
        guint finished : 1;
138
 
        guint failed : 1;
139
 
        
140
 
        GError *error;
141
 
        GCancellable *cancellable;
142
 
 
143
 
        guint idle_finished_id;
144
 
        guint idle_cancelled_id;
145
 
};
146
 
 
147
 
struct _EvJobClass
148
 
{
149
 
        GObjectClass parent_class;
150
 
 
151
 
        gboolean (*run)         (EvJob *job);
152
 
        
153
 
        /* Signals */
154
 
        void     (* cancelled)  (EvJob *job);
155
 
        void     (* finished)   (EvJob *job);
156
 
};
157
 
 
158
 
struct _EvJobLinks
159
 
{
160
 
        EvJob parent;
161
 
 
162
 
        GtkTreeModel *model;
163
 
};
164
 
 
165
 
struct _EvJobLinksClass
166
 
{
167
 
        EvJobClass parent_class;
168
 
};
169
 
 
170
 
struct _EvJobAttachments
171
 
{
172
 
        EvJob parent;
173
 
 
174
 
        GList *attachments;
175
 
};
176
 
 
177
 
struct _EvJobAttachmentsClass
178
 
{
179
 
        EvJobClass parent_class;
180
 
};
181
 
 
182
 
typedef enum {
183
 
        EV_RENDER_INCLUDE_NONE      = 0,
184
 
        EV_RENDER_INCLUDE_LINKS     = 1 << 0,
185
 
        EV_RENDER_INCLUDE_TEXT      = 1 << 1,
186
 
        EV_RENDER_INCLUDE_SELECTION = 1 << 2,
187
 
        EV_RENDER_INCLUDE_IMAGES    = 1 << 3,
188
 
        EV_RENDER_INCLUDE_FORMS     = 1 << 4,
189
 
        EV_RENDER_INCLUDE_ALL       = (1 << 5) - 1
190
 
} EvRenderFlags;
191
 
 
192
 
struct _EvJobRender
193
 
{
194
 
        EvJob parent;
195
 
 
196
 
        gint page;
197
 
        gint rotation;
198
 
        gdouble scale;
199
 
 
200
 
        EvPage *ev_page;
201
 
        gboolean page_ready;
202
 
        gint target_width;
203
 
        gint target_height;
204
 
        cairo_surface_t *surface;
205
 
 
206
 
        GList *link_mapping;
207
 
        GdkRegion *text_mapping;
208
 
        GList *image_mapping;
209
 
        GList *form_field_mapping;
210
 
 
211
 
        cairo_surface_t *selection;
212
 
        GdkRegion *selection_region;
213
 
        EvRectangle selection_points;
214
 
        EvSelectionStyle selection_style;
215
 
        GdkColor base;
216
 
        GdkColor text; 
217
 
 
218
 
        EvRenderFlags flags;
219
 
};
220
 
 
221
 
struct _EvJobRenderClass
222
 
{
223
 
        EvJobClass parent_class;
224
 
 
225
 
        void    (* page_ready) (EvJobRender *job);
226
 
};
227
 
 
228
 
struct _EvJobThumbnail
229
 
{
230
 
        EvJob parent;
231
 
 
232
 
        gint page;
233
 
        gint rotation;
234
 
        gdouble scale;
235
 
        
236
 
        GdkPixbuf *thumbnail;
237
 
};
238
 
 
239
 
struct _EvJobThumbnailClass
240
 
{
241
 
        EvJobClass parent_class;
242
 
};
243
 
 
244
 
struct _EvJobFonts
245
 
{
246
 
        EvJob parent;
247
 
        gboolean scan_completed;
248
 
};
249
 
 
250
 
struct _EvJobFontsClass
251
 
{
252
 
        EvJobClass parent_class;
253
 
 
254
 
        /* Signals */
255
 
        void (* updated)  (EvJobFonts *job,
256
 
                           gdouble     progress);
257
 
};
258
 
 
259
 
struct _EvJobLoad
260
 
{
261
 
        EvJob parent;
262
 
        
263
 
        EvLinkDest *dest;
264
 
        EvWindowRunMode mode;
265
 
        gchar *search_string;
266
 
        gchar *uri;
267
 
        gchar *password;
268
 
};
269
 
 
270
 
struct _EvJobLoadClass
271
 
{
272
 
        EvJobClass parent_class;
273
 
};
274
 
 
275
 
struct _EvJobSave
276
 
{
277
 
        EvJob parent;
278
 
 
279
 
        gchar *uri;
280
 
        gchar *document_uri;
281
 
};
282
 
 
283
 
struct _EvJobSaveClass
284
 
{
285
 
        EvJobClass parent_class;
286
 
};
287
 
 
288
 
struct _EvJobFind
289
 
{
290
 
        EvJob parent;
291
 
 
292
 
        gint start_page;
293
 
        gint current_page;
294
 
        gint n_pages;
295
 
        GList **pages;
296
 
        gchar *text;
297
 
        gboolean case_sensitive;
298
 
        gboolean has_results;
299
 
};
300
 
 
301
 
struct _EvJobFindClass
302
 
{
303
 
        EvJobClass parent_class;
304
 
 
305
 
        /* Signals */
306
 
        void (* updated)  (EvJobFind *job,
307
 
                           gint       page);
308
 
};
309
 
 
310
 
struct _EvJobLayers
311
 
{
312
 
        EvJob parent;
313
 
 
314
 
        GtkTreeModel *model;
315
 
};
316
 
 
317
 
struct _EvJobLayersClass
318
 
{
319
 
        EvJobClass parent_class;
320
 
};
321
 
 
322
 
struct _EvJobExport
323
 
{
324
 
        EvJob parent;
325
 
 
326
 
        gint page;
327
 
        EvRenderContext *rc;
328
 
};
329
 
 
330
 
struct _EvJobExportClass
331
 
{
332
 
        EvJobClass parent_class;
333
 
};
334
 
 
335
 
/* Base job class */
336
 
GType           ev_job_get_type           (void) G_GNUC_CONST;
337
 
gboolean        ev_job_run                (EvJob          *job);
338
 
void            ev_job_cancel             (EvJob          *job);
339
 
void            ev_job_failed             (EvJob          *job,
340
 
                                           GQuark          domain,
341
 
                                           gint            code,
342
 
                                           const gchar    *format,
343
 
                                           ...);
344
 
void            ev_job_failed_from_error  (EvJob          *job,
345
 
                                           GError         *error);
346
 
void            ev_job_succeeded          (EvJob          *job);
347
 
gboolean        ev_job_is_cancelled       (EvJob          *job);
348
 
gboolean        ev_job_is_finished        (EvJob          *job);
349
 
gboolean        ev_job_is_failed          (EvJob          *job);
350
 
EvJobRunMode    ev_job_get_run_mode       (EvJob          *job);
351
 
void            ev_job_set_run_mode       (EvJob          *job,
352
 
                                           EvJobRunMode    run_mode);
353
 
 
354
 
/* EvJobLinks */
355
 
GType           ev_job_links_get_type     (void) G_GNUC_CONST;
356
 
EvJob          *ev_job_links_new          (EvDocument     *document);
357
 
 
358
 
/* EvJobAttachments */
359
 
GType           ev_job_attachments_get_type (void) G_GNUC_CONST;
360
 
EvJob          *ev_job_attachments_new      (EvDocument     *document);
361
 
 
362
 
/* EvJobRender */
363
 
GType           ev_job_render_get_type    (void) G_GNUC_CONST;
364
 
EvJob          *ev_job_render_new         (EvDocument      *document,
365
 
                                           gint             page,
366
 
                                           gint             rotation,
367
 
                                           gdouble          scale,
368
 
                                           gint             width,
369
 
                                           gint             height,
370
 
                                           EvRenderFlags    flags);
371
 
void     ev_job_render_set_selection_info (EvJobRender     *job,
372
 
                                           EvRectangle     *selection_points,
373
 
                                           EvSelectionStyle selection_style,
374
 
                                           GdkColor        *text,
375
 
                                           GdkColor        *base);
376
 
/* EvJobThumbnail */
377
 
GType           ev_job_thumbnail_get_type (void) G_GNUC_CONST;
378
 
EvJob          *ev_job_thumbnail_new      (EvDocument      *document,
379
 
                                           gint             page,
380
 
                                           gint             rotation,
381
 
                                           gdouble          scale);
382
 
/* EvJobFonts */
383
 
GType           ev_job_fonts_get_type     (void) G_GNUC_CONST;
384
 
EvJob          *ev_job_fonts_new          (EvDocument      *document);
385
 
 
386
 
/* EvJobLoad */
387
 
GType           ev_job_load_get_type      (void) G_GNUC_CONST;
388
 
EvJob          *ev_job_load_new           (const gchar     *uri,
389
 
                                           EvLinkDest      *dest,
390
 
                                           EvWindowRunMode  mode,
391
 
                                           const gchar     *search_string);
392
 
void            ev_job_load_set_uri       (EvJobLoad       *load,
393
 
                                           const gchar     *uri);
394
 
void            ev_job_load_set_password  (EvJobLoad       *job,
395
 
                                           const gchar     *password);
396
 
 
397
 
/* EvJobSave */
398
 
GType           ev_job_save_get_type      (void) G_GNUC_CONST;
399
 
EvJob          *ev_job_save_new           (EvDocument      *document,
400
 
                                           const gchar     *uri,
401
 
                                           const gchar     *document_uri);
402
 
/* EvJobFind */
403
 
GType           ev_job_find_get_type      (void) G_GNUC_CONST;
404
 
EvJob          *ev_job_find_new           (EvDocument      *document,
405
 
                                           gint             start_page,
406
 
                                           gint             n_pages,
407
 
                                           const gchar     *text,
408
 
                                           gboolean         case_sensitive);
409
 
gint            ev_job_find_get_n_results (EvJobFind       *job,
410
 
                                           gint             pages);
411
 
gdouble         ev_job_find_get_progress  (EvJobFind       *job);
412
 
gboolean        ev_job_find_has_results   (EvJobFind       *job);
413
 
GList         **ev_job_find_get_results   (EvJobFind       *job);
414
 
 
415
 
/* EvJobLayers */
416
 
GType           ev_job_layers_get_type    (void) G_GNUC_CONST;
417
 
EvJob          *ev_job_layers_new         (EvDocument     *document);
418
 
 
419
 
/* EvJobExport */
420
 
GType           ev_job_export_get_type    (void) G_GNUC_CONST;
421
 
EvJob          *ev_job_export_new         (EvDocument     *document);
422
 
void            ev_job_export_set_page    (EvJobExport    *job,
423
 
                                           gint            page);
424
 
 
425
 
G_END_DECLS
426
 
 
427
 
#endif /* __EV_JOBS_H__ */