*
* 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)
typedef struct _EvJobRender EvJobRender;
typedef struct _EvJobRenderClass EvJobRenderClass;
+typedef struct _EvJobPageData EvJobPageData;
+typedef struct _EvJobPageDataClass EvJobPageDataClass;
+
typedef struct _EvJobThumbnail EvJobThumbnail;
typedef struct _EvJobThumbnailClass EvJobThumbnailClass;
typedef struct _EvJobAttachments EvJobAttachments;
typedef struct _EvJobAttachmentsClass EvJobAttachmentsClass;
+typedef struct _EvJobAnnots EvJobAnnots;
+typedef struct _EvJobAnnotsClass EvJobAnnotsClass;
+
typedef struct _EvJobFonts EvJobFonts;
typedef struct _EvJobFontsClass EvJobFontsClass;
#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))
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_ANNOTS = 1 << 5,
- EV_RENDER_INCLUDE_ALL = (1 << 6) - 1
-} EvRenderFlags;
+struct _EvJobAnnots
+{
+ EvJob parent;
+
+ GList *annots;
+};
+
+struct _EvJobAnnotsClass
+{
+ EvJobClass parent_class;
+};
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;
- GList *annots_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
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);
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,
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,