Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pdf
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@gnome.org>2005-01-07 12:16:43 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-01-07 12:16:43 (GMT)
commit8b3ebe4d7024547993d3b4660f3f22036e327be3 (patch)
tree0862e57165cef77db894dd5123ec4b81ed42738f /pdf
parent3a87fe3d6bd17d8151c675c9b4e9294619127b1b (diff)
Add a bookmark object to the backend and use it instead of get_values
2005-01-07 Marco Pesenti Gritti <marco@gnome.org> * backend/Makefile.am: * backend/ev-bookmark.c: (ev_bookmark_type_get_type), (ev_bookmark_get_title), (ev_bookmark_set_title), (ev_bookmark_get_bookmark_type), (ev_bookmark_set_bookmark_type), (ev_bookmark_get_page), (ev_bookmark_set_page), (ev_bookmark_get_property), (ev_bookmark_set_property), (ev_window_dispose), (ev_bookmark_init), (ev_bookmark_class_init), (ev_bookmark_new): * backend/ev-bookmark.h: * backend/ev-document-bookmarks.c: (ev_document_bookmarks_get_bookmark): * backend/ev-document-bookmarks.h: * pdf/xpdf/pdf-document.cc: * shell/ev-sidebar-bookmarks.c: (do_one_iteration): Add a bookmark object to the backend and use it instead of get_values
Diffstat (limited to 'pdf')
-rw-r--r--pdf/xpdf/pdf-document.cc29
1 files changed, 13 insertions, 16 deletions
diff --git a/pdf/xpdf/pdf-document.cc b/pdf/xpdf/pdf-document.cc
index a4049c6..feb009d 100644
--- a/pdf/xpdf/pdf-document.cc
+++ b/pdf/xpdf/pdf-document.cc
@@ -740,14 +740,12 @@ pdf_document_bookmarks_begin_read (EvDocumentBookmarks *document_bookmarks)
return (EvDocumentBookmarksIter *) iter;
}
-static gboolean
-pdf_document_bookmarks_get_values (EvDocumentBookmarks *document_bookmarks,
- EvDocumentBookmarksIter *bookmarks_iter,
- char **title,
- EvDocumentBookmarksType *type,
- gint *page)
+static EvBookmark *
+pdf_document_bookmarks_get_bookmark (EvDocumentBookmarks *document_bookmarks,
+ EvDocumentBookmarksIter *bookmarks_iter)
{
PdfDocument *pdf_document = PDF_DOCUMENT (document_bookmarks);
+ EvBookmark *bookmark;
BookmarksIter *iter = (BookmarksIter *)bookmarks_iter;
OutlineItem *anItem;
LinkAction *link_action;
@@ -757,13 +755,11 @@ pdf_document_bookmarks_get_values (EvDocumentBookmarks *document_bookmarks,
GString *named_dest;
Unicode *link_title;
Ref page_ref;
- gint page_num = -1;
+ gint page_num = 0;
+ char *title;
g_return_val_if_fail (PDF_IS_DOCUMENT (document_bookmarks), FALSE);
g_return_val_if_fail (iter != NULL, FALSE);
- g_return_val_if_fail (title != NULL, FALSE);
- g_return_val_if_fail (type != NULL, FALSE);
- g_return_val_if_fail (page != NULL, FALSE);
anItem = (OutlineItem *)iter->items->get(iter->index);
link_action = anItem->getAction ();
@@ -808,15 +804,16 @@ pdf_document_bookmarks_get_values (EvDocumentBookmarks *document_bookmarks,
g_warning ("Unknown link action type: %d", link_action->getKind ());
}
- *title = g_strdup (unicode_to_char (anItem, pdf_document->umap));
+ title = g_strdup (unicode_to_char (anItem, pdf_document->umap));
} else if (link_title) {
- *title = g_strdup (unicode_to_char (anItem, pdf_document->umap));
+ title = g_strdup (unicode_to_char (anItem, pdf_document->umap));
}
- *type = EV_DOCUMENT_BOOKMARKS_TYPE_LINK;
- *page = page_num;
+ bookmark = ev_bookmark_new (title, EV_BOOKMARK_TYPE_LINK, page_num);
- return TRUE;
+ g_free (title);
+
+ return bookmark;
}
static EvDocumentBookmarksIter *
@@ -1047,7 +1044,7 @@ pdf_document_document_bookmarks_iface_init (EvDocumentBookmarksIface *iface)
{
iface->has_document_bookmarks = pdf_document_bookmarks_has_document_bookmarks;
iface->begin_read = pdf_document_bookmarks_begin_read;
- iface->get_values = pdf_document_bookmarks_get_values;
+ iface->get_bookmark = pdf_document_bookmarks_get_bookmark;
iface->get_child = pdf_document_bookmarks_get_child;
iface->next = pdf_document_bookmarks_next;
iface->free_iter = pdf_document_bookmarks_free_iter;