} 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;
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;
void ev_document_get_max_page_size (EvDocument *document,
gdouble *width,
gdouble *height);
+void ev_document_get_min_page_size (EvDocument *document,
+ gdouble *width,
+ gdouble *height);
gboolean ev_document_check_dimensions (EvDocument *document);
gint ev_document_get_max_label_len (EvDocument *document);
gboolean ev_document_has_text_page_labels (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()).