X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=libdocument%2Fev-document.c;h=1171509a3587ec8c29d259671821079c73967bca;hb=14def5e0c1c11cee1523e10c72df74f4cf5e451d;hp=e0ce69fd644e9df4d8c8aa5b0da1601034f47b82;hpb=6426ce3672bf190ab39d9c49c841232c127d174f;p=evince.git diff --git a/libdocument/ev-document.c b/libdocument/ev-document.c index e0ce69fd..1171509a 100644 --- a/libdocument/ev-document.c +++ b/libdocument/ev-document.c @@ -30,7 +30,6 @@ static void ev_document_class_init (gpointer g_class); GMutex *ev_doc_mutex = NULL; GMutex *ev_fc_mutex = NULL; -#define LOG(x) GType ev_document_get_type (void) { @@ -90,6 +89,12 @@ ev_document_doc_mutex_unlock (void) g_mutex_unlock (ev_document_get_doc_mutex ()); } +gboolean +ev_document_doc_mutex_trylock (void) +{ + return g_mutex_trylock (ev_document_get_doc_mutex ()); +} + GMutex * ev_document_get_fc_mutex (void) { @@ -111,6 +116,12 @@ ev_document_fc_mutex_unlock (void) g_mutex_unlock (ev_document_get_fc_mutex ()); } +gboolean +ev_document_fc_mutex_trylock (void) +{ + return g_mutex_trylock (ev_document_get_fc_mutex ()); +} + gboolean ev_document_load (EvDocument *document, const char *uri, @@ -118,7 +129,7 @@ ev_document_load (EvDocument *document, { EvDocumentIface *iface = EV_DOCUMENT_GET_IFACE (document); gboolean retval; - LOG ("ev_document_load"); + retval = iface->load (document, uri, error); return retval; @@ -132,7 +143,6 @@ ev_document_save (EvDocument *document, EvDocumentIface *iface = EV_DOCUMENT_GET_IFACE (document); gboolean retval; - LOG ("ev_document_save"); retval = iface->save (document, uri, error); return retval; @@ -144,45 +154,49 @@ ev_document_get_n_pages (EvDocument *document) EvDocumentIface *iface = EV_DOCUMENT_GET_IFACE (document); gint retval; - LOG ("ev_document_get_n_pages"); retval = iface->get_n_pages (document); return retval; } +EvPage * +ev_document_get_page (EvDocument *document, + gint index) +{ + EvDocumentIface *iface = EV_DOCUMENT_GET_IFACE (document); + EvPage *retval; + + if (iface->get_page) + retval = iface->get_page (document, index); + else + retval = ev_page_new (index); + + return retval; +} + void -ev_document_get_page_size (EvDocument *document, - int page, - double *width, - double *height) +ev_document_get_page_size (EvDocument *document, + EvPage *page, + double *width, + double *height) { EvDocumentIface *iface = EV_DOCUMENT_GET_IFACE (document); - LOG ("ev_document_get_page_size"); iface->get_page_size (document, page, width, height); } char * -ev_document_get_page_label(EvDocument *document, - int page) +ev_document_get_page_label (EvDocument *document, + EvPage *page) { EvDocumentIface *iface = EV_DOCUMENT_GET_IFACE (document); - LOG ("ev_document_get_page_label"); if (iface->get_page_label == NULL) return NULL; return iface->get_page_label (document, page); } -gboolean -ev_document_can_get_text (EvDocument *document) -{ - EvDocumentIface *iface = EV_DOCUMENT_GET_IFACE (document); - - return iface->can_get_text (document); -} - EvDocumentInfo * ev_document_get_info (EvDocument *document) { @@ -191,20 +205,6 @@ ev_document_get_info (EvDocument *document) return iface->get_info (document); } -char * -ev_document_get_text (EvDocument *document, - int page, - EvRectangle *rect) -{ - EvDocumentIface *iface = EV_DOCUMENT_GET_IFACE (document); - char *retval; - - LOG ("ev_document_get_text"); - retval = iface->get_text (document, page, rect); - - return retval; -} - gboolean ev_document_has_attachments (EvDocument *document) { @@ -222,7 +222,6 @@ ev_document_get_attachments (EvDocument *document) EvDocumentIface *iface = EV_DOCUMENT_GET_IFACE (document); GList *retval; - LOG ("ev_document_get_attachments"); if (iface->get_attachments == NULL) return NULL; retval = iface->get_attachments (document); @@ -237,7 +236,6 @@ ev_document_render (EvDocument *document, EvDocumentIface *iface = EV_DOCUMENT_GET_IFACE (document); cairo_surface_t *retval; - LOG ("ev_document_render_pixbuf"); g_assert (iface->render); retval = iface->render (document, rc); @@ -261,7 +259,6 @@ ev_document_info_free (EvDocumentInfo *info) g_free (info->linearized); g_free (info->security); - g_free (info); }