diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2005-05-16 09:07:43 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2005-05-16 09:07:43 (GMT) |
commit | 3159bda019e6ee334bfd11af45bd8ada0a871f33 (patch) | |
tree | e34539f96f2879b93fb04a101cb322ea4d2ae63a /shell/ev-window.c | |
parent | ba33ad17ac72e6383eae5fec2974480e4ae892f7 (diff) |
Expose api to print a range (with dialog). Make private _print use it.
2005-05-16 Marco Pesenti Gritti <mpg@redhat.com>
* shell/ev-window.c: (ev_window_print), (ev_window_print_range):
* shell/ev-window.h:
Expose api to print a range (with dialog). Make private _print use
it.
* shell/ev-sidebar-links.c: (print_section_cb), (button_press_cb),
(ev_sidebar_links_construct):
Show a print context menu on linkx, it prints the selected
section.
Diffstat (limited to 'shell/ev-window.c')
-rw-r--r-- | shell/ev-window.c | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/shell/ev-window.c b/shell/ev-window.c index 085f60a..f1b4160 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -1070,23 +1070,38 @@ using_postscript_printer (GnomePrintConfig *config) } static void -ev_window_print (EvWindow *ev_window) +ev_window_print (EvWindow *window) +{ + EvPageCache *page_cache; + int last_page; + + page_cache = ev_document_get_page_cache (window->priv->document); + last_page = ev_page_cache_get_n_pages (page_cache); + + ev_window_print_range (window, 1, -1); +} + +void +ev_window_print_range (EvWindow *ev_window, int first_page, int last_page) { GnomePrintConfig *config; GnomePrintJob *job; GtkWidget *print_dialog; - EvPageCache *page_cache; gchar *pages_label; EvPrintJob *print_job = NULL; + EvPageCache *page_cache; g_return_if_fail (EV_IS_WINDOW (ev_window)); g_return_if_fail (ev_window->priv->document != NULL); + page_cache = ev_document_get_page_cache (ev_window->priv->document); + if (last_page == -1) { + last_page = ev_page_cache_get_n_pages (page_cache); + } + config = gnome_print_config_default (); job = gnome_print_job_new (config); - page_cache = ev_document_get_page_cache (ev_window->priv->document); - print_dialog = gnome_print_dialog_new (job, (guchar *) _("Print"), (GNOME_PRINT_DIALOG_RANGE | GNOME_PRINT_DIALOG_COPIES)); @@ -1095,8 +1110,7 @@ ev_window_print (EvWindow *ev_window) gnome_print_dialog_construct_range_page (GNOME_PRINT_DIALOG (print_dialog), GNOME_PRINT_RANGE_ALL | GNOME_PRINT_RANGE_RANGE, - 1, - ev_page_cache_get_n_pages (page_cache), + first_page, last_page, NULL, (const guchar *)pages_label); g_free (pages_label); |