} EvPoint;
typedef struct _EvRectangle EvRectangle;
+typedef struct _EvMapping EvMapping;
typedef struct _EvDocumentBackendInfo EvDocumentBackendInfo;
struct _EvDocumentBackendInfo
const gchar *version;
};
+typedef struct {
+ const gchar *filename;
+ gint line;
+ gint col;
+} EvSourceLink;
+
struct _EvDocument
{
GObject base;
EvPage *page);
cairo_surface_t * (* render) (EvDocument *document,
EvRenderContext *rc);
+ GdkPixbuf * (* get_thumbnail) (EvDocument *document,
+ EvRenderContext *rc);
EvDocumentInfo * (* get_info) (EvDocument *document);
gboolean (* get_backend_info)(EvDocument *document,
EvDocumentBackendInfo *info);
+ gboolean (* support_synctex) (EvDocument *document);
};
GType ev_document_get_type (void) G_GNUC_CONST;
gint page_index);
cairo_surface_t *ev_document_render (EvDocument *document,
EvRenderContext *rc);
+GdkPixbuf *ev_document_get_thumbnail (EvDocument *document,
+ EvRenderContext *rc);
const gchar *ev_document_get_uri (EvDocument *document);
const gchar *ev_document_get_title (EvDocument *document);
gboolean ev_document_is_page_size_uniform (EvDocument *document);
gboolean ev_document_find_page_by_label (EvDocument *document,
const gchar *page_label,
gint *page_index);
+gboolean ev_document_has_synctex (EvDocument *document);
+
+EvSourceLink *ev_document_synctex_backward_search
+ (EvDocument *document,
+ gint page_index,
+ gfloat x,
+ gfloat y);
+
+EvMapping *ev_document_synctex_forward_search
+ (EvDocument *document,
+ EvSourceLink *source_link);
gint ev_rect_cmp (EvRectangle *a,
EvRectangle *b);
EvRectangle *ev_rectangle_copy (EvRectangle *ev_rect);
void ev_rectangle_free (EvRectangle *ev_rect);
+struct _EvMapping {
+ EvRectangle area;
+ gpointer data;
+};
+
/* convenience macro to ease interface addition in the CODE
* section of EV_BACKEND_REGISTER_WITH_CODE (this macro relies on
* the g_define_type_id present within EV_BACKEND_REGISTER_WITH_CODE()).