EvDocument

EvDocument

Synopsis

struct              EvDocument;
struct              EvDocumentClass;
#define             EV_DOC_MUTEX_LOCK
#define             EV_DOC_MUTEX_UNLOCK
enum                EvDocumentError;
struct              EvPoint;
struct              EvSourceLink;
struct              EvRectangle;
struct              EvDocumentBackendInfo;
enum                EvDocumentLoadFlags;
GMutex *            ev_document_get_doc_mutex           (void);
void                ev_document_doc_mutex_lock          (void);
void                ev_document_doc_mutex_unlock        (void);
gboolean            ev_document_doc_mutex_trylock       (void);
GMutex *            ev_document_get_fc_mutex            (void);
void                ev_document_fc_mutex_lock           (void);
void                ev_document_fc_mutex_unlock         (void);
gboolean            ev_document_fc_mutex_trylock        (void);
EvDocumentInfo *    ev_document_get_info                (EvDocument *document);
gboolean            ev_document_get_backend_info        (EvDocument *document,
                                                         EvDocumentBackendInfo *info);
gboolean            ev_document_load                    (EvDocument *document,
                                                         const char *uri,
                                                         GError **error);
gboolean            ev_document_load_stream             (EvDocument *document,
                                                         GInputStream *stream,
                                                         EvDocumentLoadFlags flags,
                                                         GCancellable *cancellable,
                                                         GError **error);
gboolean            ev_document_load_gfile              (EvDocument *document,
                                                         GFile *file,
                                                         EvDocumentLoadFlags flags,
                                                         GCancellable *cancellable,
                                                         GError **error);
gboolean            ev_document_save                    (EvDocument *document,
                                                         const char *uri,
                                                         GError **error);
gint                ev_document_get_n_pages             (EvDocument *document);
EvPage *            ev_document_get_page                (EvDocument *document,
                                                         gint index);
void                ev_document_get_page_size           (EvDocument *document,
                                                         gint page_index,
                                                         double *width,
                                                         double *height);
gchar *             ev_document_get_page_label          (EvDocument *document,
                                                         gint page_index);
void                ev_document_get_min_page_size       (EvDocument *document,
                                                         gdouble *width,
                                                         gdouble *height);
cairo_surface_t *   ev_document_render                  (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);
void                ev_document_get_max_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);
GdkPixbuf *         ev_document_get_thumbnail           (EvDocument *document,
                                                         EvRenderContext *rc);
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);
EvSourceLink *      ev_source_link_copy                 (EvSourceLink *link);
void                ev_source_link_free                 (EvSourceLink *link);
EvSourceLink *      ev_source_link_new                  (const gchar *filename,
                                                         gint line,
                                                         gint col);
gint                ev_rect_cmp                         (EvRectangle *a,
                                                         EvRectangle *b);
EvRectangle *       ev_rectangle_new                    (void);
EvRectangle *       ev_rectangle_copy                   (EvRectangle *ev_rect);
void                ev_rectangle_free                   (EvRectangle *ev_rect);
#define             EV_BACKEND_IMPLEMENT_INTERFACE      (TYPE_IFACE,
                                                         iface_init)
#define             EV_BACKEND_REGISTER_WITH_CODE       (BackendName,
                                                         backend_name,
                                                         CODE)
#define             EV_BACKEND_REGISTER                 (BackendName,
                                                         backend_name)

Object Hierarchy

  GObject
   +----EvDocument
  GEnum
   +----EvDocumentError
  GBoxed
   +----EvSourceLink
  GBoxed
   +----EvRectangle
  GFlags
   +----EvDocumentLoadFlags

Description

Details

struct EvDocument

struct EvDocument;


struct EvDocumentClass

struct EvDocumentClass {
        GObjectClass base_class;

        /* Virtual Methods  */
        gboolean          (* load)            (EvDocument      *document,
                                               const char      *uri,
                                               GError         **error);
        gboolean          (* save)            (EvDocument      *document,
                                               const char      *uri,
                                               GError         **error);
        gint              (* get_n_pages)     (EvDocument      *document);
	EvPage          * (* get_page)        (EvDocument      *document,
					       gint             index);
        void              (* get_page_size)   (EvDocument      *document,
                                               EvPage          *page,
                                               double          *width,
                                               double          *height);
        gchar           * (* get_page_label)  (EvDocument      *document,
                                               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);

        /* GIO streams */
        gboolean          (* load_stream)     (EvDocument          *document,
                                               GInputStream        *stream,
                                               EvDocumentLoadFlags  flags,
                                               GCancellable        *cancellable,
                                               GError             **error);
        gboolean          (* load_gfile)      (EvDocument          *document,
                                               GFile               *file,
                                               EvDocumentLoadFlags  flags,
                                               GCancellable        *cancellable,
                                               GError             **error);
};

EV_DOC_MUTEX_LOCK

#define EV_DOC_MUTEX_LOCK (ev_document_doc_mutex_lock ())


EV_DOC_MUTEX_UNLOCK

#define EV_DOC_MUTEX_UNLOCK (ev_document_doc_mutex_unlock ())


enum EvDocumentError

typedef enum {
        EV_DOCUMENT_ERROR_INVALID,
        EV_DOCUMENT_ERROR_ENCRYPTED
} EvDocumentError;


struct EvPoint

struct EvPoint {
        double x;
        double y;
};


struct EvSourceLink

struct EvSourceLink {
        gchar *filename;
        gint   line;
        gint   col;
};

struct EvRectangle

struct EvRectangle {
	gdouble x1;
	gdouble y1;
	gdouble x2;
	gdouble y2;
};


struct EvDocumentBackendInfo

struct EvDocumentBackendInfo {
	const gchar *name;
	const gchar *version;
};

enum EvDocumentLoadFlags

typedef enum {
        EV_DOCUMENT_LOAD_FLAG_NONE = 0
} EvDocumentLoadFlags;

ev_document_get_doc_mutex ()

GMutex *            ev_document_get_doc_mutex           (void);


ev_document_doc_mutex_lock ()

void                ev_document_doc_mutex_lock          (void);


ev_document_doc_mutex_unlock ()

void                ev_document_doc_mutex_unlock        (void);


ev_document_doc_mutex_trylock ()

gboolean            ev_document_doc_mutex_trylock       (void);


ev_document_get_fc_mutex ()

GMutex *            ev_document_get_fc_mutex            (void);


ev_document_fc_mutex_lock ()

void                ev_document_fc_mutex_lock           (void);


ev_document_fc_mutex_unlock ()

void                ev_document_fc_mutex_unlock         (void);


ev_document_fc_mutex_trylock ()

gboolean            ev_document_fc_mutex_trylock        (void);


ev_document_get_info ()

EvDocumentInfo *    ev_document_get_info                (EvDocument *document);


ev_document_get_backend_info ()

gboolean            ev_document_get_backend_info        (EvDocument *document,
                                                         EvDocumentBackendInfo *info);

ev_document_load ()

gboolean            ev_document_load                    (EvDocument *document,
                                                         const char *uri,
                                                         GError **error);

Loads document from uri.

On failure, FALSE is returned and error is filled in. If the document is encrypted, EV_DEFINE_ERROR_ENCRYPTED is returned. If the backend cannot load the specific document, EV_DOCUMENT_ERROR_INVALID is returned. Other errors are possible too, depending on the backend used to load the document and the URI, e.g. GIOError, GFileError, and GConvertError.

document :

a EvDocument

uri :

the document's URI

error :

a GError location to store an error, or NULL

Returns :

TRUE on success, or FALSE on failure.

ev_document_load_stream ()

gboolean            ev_document_load_stream             (EvDocument *document,
                                                         GInputStream *stream,
                                                         EvDocumentLoadFlags flags,
                                                         GCancellable *cancellable,
                                                         GError **error);

Since 3.6


ev_document_load_gfile ()

gboolean            ev_document_load_gfile              (EvDocument *document,
                                                         GFile *file,
                                                         EvDocumentLoadFlags flags,
                                                         GCancellable *cancellable,
                                                         GError **error);

Since 3.6


ev_document_save ()

gboolean            ev_document_save                    (EvDocument *document,
                                                         const char *uri,
                                                         GError **error);

Saves document to uri.

document :

a EvDocument

uri :

the target URI

error :

a GError location to store an error, or NULL

Returns :

TRUE on success, or FALSE on error with error filled in

ev_document_get_n_pages ()

gint                ev_document_get_n_pages             (EvDocument *document);


ev_document_get_page ()

EvPage *            ev_document_get_page                (EvDocument *document,
                                                         gint index);

document :

a EvDocument

index :

index of page

Returns :

Newly created EvPage for the given index. [transfer full]

ev_document_get_page_size ()

void                ev_document_get_page_size           (EvDocument *document,
                                                         gint page_index,
                                                         double *width,
                                                         double *height);

document :

a EvDocument

page_index :

index of page

width :

return location for the width of the page, or NULL. [out][allow-none]

height :

return location for the height of the page, or NULL. [out][allow-none]

ev_document_get_page_label ()

gchar *             ev_document_get_page_label          (EvDocument *document,
                                                         gint page_index);


ev_document_get_min_page_size ()

void                ev_document_get_min_page_size       (EvDocument *document,
                                                         gdouble *width,
                                                         gdouble *height);

ev_document_render ()

cairo_surface_t *   ev_document_render                  (EvDocument *document,
                                                         EvRenderContext *rc);


ev_document_get_uri ()

const gchar *       ev_document_get_uri                 (EvDocument *document);

ev_document_get_title ()

const gchar *       ev_document_get_title               (EvDocument *document);

ev_document_is_page_size_uniform ()

gboolean            ev_document_is_page_size_uniform    (EvDocument *document);

ev_document_get_max_page_size ()

void                ev_document_get_max_page_size       (EvDocument *document,
                                                         gdouble *width,
                                                         gdouble *height);

ev_document_check_dimensions ()

gboolean            ev_document_check_dimensions        (EvDocument *document);

ev_document_get_max_label_len ()

gint                ev_document_get_max_label_len       (EvDocument *document);

ev_document_has_text_page_labels ()

gboolean            ev_document_has_text_page_labels    (EvDocument *document);

ev_document_find_page_by_label ()

gboolean            ev_document_find_page_by_label      (EvDocument *document,
                                                         const gchar *page_label,
                                                         gint *page_index);

ev_document_get_thumbnail ()

GdkPixbuf *         ev_document_get_thumbnail           (EvDocument *document,
                                                         EvRenderContext *rc);

ev_document_has_synctex ()

gboolean            ev_document_has_synctex             (EvDocument *document);

ev_document_synctex_backward_search ()

EvSourceLink *      ev_document_synctex_backward_search (EvDocument *document,
                                                         gint page_index,
                                                         gfloat x,
                                                         gfloat y);

ev_document_synctex_forward_search ()

EvMapping *         ev_document_synctex_forward_search  (EvDocument *document,
                                                         EvSourceLink *source_link);

ev_source_link_copy ()

EvSourceLink *      ev_source_link_copy                 (EvSourceLink *link);

ev_source_link_free ()

void                ev_source_link_free                 (EvSourceLink *link);

ev_source_link_new ()

EvSourceLink *      ev_source_link_new                  (const gchar *filename,
                                                         gint line,
                                                         gint col);

ev_rect_cmp ()

gint                ev_rect_cmp                         (EvRectangle *a,
                                                         EvRectangle *b);


ev_rectangle_new ()

EvRectangle *       ev_rectangle_new                    (void);


ev_rectangle_copy ()

EvRectangle *       ev_rectangle_copy                   (EvRectangle *ev_rect);


ev_rectangle_free ()

void                ev_rectangle_free                   (EvRectangle *ev_rect);


EV_BACKEND_IMPLEMENT_INTERFACE()

#define             EV_BACKEND_IMPLEMENT_INTERFACE(TYPE_IFACE, iface_init)


EV_BACKEND_REGISTER_WITH_CODE()

#define             EV_BACKEND_REGISTER_WITH_CODE(BackendName, backend_name, CODE)


EV_BACKEND_REGISTER()

#define             EV_BACKEND_REGISTER(BackendName, backend_name)