#include <config.h>
+#if GTKUNIXPRINT_ENABLED
#include <gtk/gtkunixprint.h>
+#endif
#include <glib/gi18n.h>
#include <evince-view.h>
-#include "ev-stock-icons.h"
#include "ev-page-action.h"
#include "ev-previewer-window.h"
/* Printing */
GtkPrintSettings *print_settings;
GtkPageSetup *print_page_setup;
+#if GTKUNIXPRINT_ENABLED
GtkPrinter *printer;
+#endif
gchar *print_job_title;
gchar *source_file;
};
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,
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_OBJECT_CLASS (ev_previewer_window_parent_class)->dispose (object);
}
+static gchar*
+data_dir (void)
+{
+ gchar *datadir;
+#ifdef G_OS_WIN32
+ gchar *dir;
+
+ dir = g_win32_get_package_installation_directory_of_module (NULL);
+ datadir = g_build_filename (dir, "share", "evince", NULL);
+ g_free (dir);
+#else
+ datadir = g_strdup (DATADIR);
+#endif
+
+ return datadir;
+}
+
static void
ev_previewer_window_init (EvPreviewerWindow *window)
{
GtkWidget *toolbar;
GtkAction *action;
GError *error = NULL;
+ gchar *datadir, *ui_path;
gtk_window_set_default_size (GTK_WINDOW (window), 600, 600);
window->action_group, 0);
gtk_window_add_accel_group (GTK_WINDOW (window),
gtk_ui_manager_get_accel_group (window->ui_manager));
- if (!gtk_ui_manager_add_ui_from_file (window->ui_manager,
- DATADIR"/evince-previewer-ui.xml",
- &error)) {
+ datadir = data_dir ();
+ ui_path = g_build_filename (datadir, "evince-previewer-ui.xml", NULL);
+ if (!gtk_ui_manager_add_ui_from_file (window->ui_manager, ui_path, &error)) {
g_warning ("Failed to load ui from evince-previewer-ui.xml: %s", error->message);
g_error_free (error);
}
+ g_free (ui_path);
+ g_free (datadir);
vbox = gtk_vbox_new (FALSE, 0);