#include <config.h>
+#if GTKUNIXPRINT_ENABLED
#include <gtk/gtkunixprint.h>
+#endif
#include <glib/gi18n.h>
#include <evince-view.h>
#include "ev-page-action.h"
/* Printing */
GtkPrintSettings *print_settings;
GtkPageSetup *print_page_setup;
+#if GTKUNIXPRINT_ENABLED
GtkPrinter *printer;
+#endif
gchar *print_job_title;
gchar *source_file;
};
return (xdpi + ydpi) / 2.0;
}
-static void
-ev_previewer_window_set_view_size (EvPreviewerWindow *window)
-{
- gint width, height;
- GtkRequisition vsb_requisition;
- GtkRequisition hsb_requisition;
- gint scrollbar_spacing;
-
- if (!window->view)
- return;
-
- /* Calculate the width available for the content */
- width = window->swindow->allocation.width;
- height = window->swindow->allocation.height;
-
- if (gtk_scrolled_window_get_shadow_type (GTK_SCROLLED_WINDOW (window->swindow)) == GTK_SHADOW_IN) {
- width -= 2 * GTK_WIDGET (window->view)->style->xthickness;
- height -= 2 * GTK_WIDGET (window->view)->style->ythickness;
- }
-
- gtk_widget_size_request (GTK_SCROLLED_WINDOW (window->swindow)->vscrollbar,
- &vsb_requisition);
- gtk_widget_size_request (GTK_SCROLLED_WINDOW (window->swindow)->hscrollbar,
- &hsb_requisition);
- gtk_widget_style_get (window->swindow,
- "scrollbar_spacing",
- &scrollbar_spacing,
- NULL);
-
- ev_view_set_zoom_for_size (window->view,
- MAX (1, width),
- MAX (1, height),
- vsb_requisition.width + scrollbar_spacing,
- hsb_requisition.height + scrollbar_spacing);
-}
-
+#if GTKUNIXPRINT_ENABLED
static void
ev_previewer_window_error_dialog_run (EvPreviewerWindow *window,
GError *error)
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
}
+#endif
static void
ev_previewer_window_previous_page (GtkAction *action,
{
if (gtk_toggle_action_get_active (action)) {
ev_view_set_sizing_mode (window->view, EV_SIZING_BEST_FIT);
- ev_previewer_window_set_view_size (window);
} else {
ev_view_set_sizing_mode (window->view, EV_SIZING_FREE);
}
{
if (gtk_toggle_action_get_active (action)) {
ev_view_set_sizing_mode (window->view, EV_SIZING_FIT_WIDTH);
- ev_previewer_window_set_view_size (window);
} else {
ev_view_set_sizing_mode (window->view, EV_SIZING_FREE);
}
gtk_widget_grab_focus (GTK_WIDGET (window->view));
}
+#if GTKUNIXPRINT_ENABLED
static void
ev_previewer_window_print_finished (GtkPrintJob *print_job,
EvPreviewerWindow *window,
(GDestroyNotify)ev_previewer_window_enumerate_finished,
FALSE);
}
+#endif
static const GtkActionEntry action_entries[] = {
{ "GoPreviousPage", GTK_STOCK_GO_UP, N_("_Previous Page"), "<control>Page_Up",
{ "ViewZoomOut", GTK_STOCK_ZOOM_OUT, NULL, "<control>minus",
N_("Shrink the document"),
G_CALLBACK (ev_previewer_window_zoom_out) },
+#if GTKUNIXPRINT_ENABLED
{ "PreviewPrint", GTK_STOCK_PRINT, N_("Print"), NULL,
N_("Print this document"),
G_CALLBACK (ev_previewer_window_print) }
+#endif
};
static const GtkToggleActionEntry toggle_action_entries[] = {
window->print_page_setup = NULL;
}
+#if GTKUNIXPRINT_ENABLED
if (window->printer) {
g_object_unref (window->printer);
window->printer = NULL;
}
+#endif
if (window->print_job_title) {
g_free (window->print_job_title);
g_signal_connect (window->view, "notify::sizing-mode",
G_CALLBACK (view_sizing_mode_changed),
window);
- g_signal_connect_swapped (window->view, "zoom_invalid",
- G_CALLBACK (ev_previewer_window_set_view_size),
- window);
-
+
ev_view_set_screen_dpi (window->view, get_screen_dpi (GTK_WINDOW (window)));
ev_view_set_continuous (window->view, FALSE);
ev_view_set_sizing_mode (window->view, EV_SIZING_FIT_WIDTH);