diff options
author | Jonathan Blandford <jrb@src.gnome.org> | 2005-03-31 18:43:05 (GMT) |
---|---|---|
committer | Jonathan Blandford <jrb@src.gnome.org> | 2005-03-31 18:43:05 (GMT) |
commit | 03ad9a29cbe1a89dfc5e8b94a74f6f86c4cba076 (patch) | |
tree | 9a2b40848e7f657691fd682673d71189301b676e /backend/ev-page-cache.c | |
parent | e8096c18ba580156072e8c84103bee6f6d3f0bfc (diff) |
Cr 31 13:27:50 2005 Jonathan Blandford <jrb@redhat.com>
Cr 31 13:27:50 2005 Jonathan Blandford <jrb@redhat.com>
* backend/ev-document.c: (ev_document_get_page_label):
* backend/ev-document.h:
* backend/ev-page-cache.c: (_ev_page_cache_new),
(ev_page_cache_get_page_label):
* backend/ev-page-cache.h:
* pdf/ev-poppler.cc:
* shell/ev-sidebar-links.c: (ev_sidebar_links_construct),
(links_page_num_func):
* shell/ev-sidebar-thumbnails.c:
(ev_sidebar_thumbnails_set_document):
* shell/ev-view.c: (status_message_from_link),
(ev_view_motion_notify_event):
* shell/ev-window.c: (document_supports_sidebar): Add in page
label support. It's not perfect yet, but it's the first 'feature'
in a while.
Also, fix a bogus comment noticed by crispin.
VS: Modified Files:
Diffstat (limited to 'backend/ev-page-cache.c')
-rw-r--r-- | backend/ev-page-cache.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/backend/ev-page-cache.c b/backend/ev-page-cache.c index f16ddc5..2042394 100644 --- a/backend/ev-page-cache.c +++ b/backend/ev-page-cache.c @@ -16,6 +16,7 @@ struct _EvPageCache gint current_page; int n_pages; char *title; + char **page_labels; gboolean uniform; gint uniform_width; @@ -100,6 +101,7 @@ _ev_page_cache_new (EvDocument *document) page_cache->uniform = TRUE; page_cache->n_pages = ev_document_get_n_pages (document); page_cache->title = ev_document_get_title (document); + page_cache->page_labels = g_new0 (char *, page_cache->n_pages); ev_document_set_scale (document, 1.0); for (i = 0; i < page_cache->n_pages; i++) { @@ -107,6 +109,7 @@ _ev_page_cache_new (EvDocument *document) gint page_height = 0; ev_document_get_page_size (document, i, &page_width, &page_height); + page_cache->page_labels[i] = ev_document_get_page_label (document, i); if (i == 0) { page_cache->uniform_width = page_width; @@ -228,6 +231,19 @@ ev_page_cache_get_size (EvPageCache *page_cache, *height = (*height) * scale; } +gchar * +ev_page_cache_get_page_label (EvPageCache *page_cache, + gint page) +{ + g_return_val_if_fail (EV_IS_PAGE_CACHE (page_cache), NULL); + g_return_val_if_fail (page >= 0 && page < page_cache->n_pages, NULL); + + if (page_cache->page_labels[page] == NULL) + return g_strdup_printf ("%d", page + 1); + + return g_strdup (page_cache->page_labels[page]); +} + gboolean ev_page_cache_next_page (EvPageCache *page_cache) |