#include "ev-application.h"
#include "ev-stock-icons.h"
#include "ev-file-helpers.h"
+#include <poppler.h>
#include <glib/gi18n.h>
#include <gtk/gtk.h>
#include <string.h>
typedef enum {
- PAGE_MODE_SINGLE_PAGE,
- PAGE_MODE_CONTINUOUS_PAGE,
- PAGE_MODE_PASSWORD,
+ PAGE_MODE_DOCUMENT,
+ PAGE_MODE_PASSWORD
} EvWindowPageMode;
typedef enum {
set_action_sensitive (ev_window, "GoLastPage", FALSE);
}
- /* Page View radio group */
- if (document) {
- set_action_sensitive (ev_window, "SinglePage", page_mode != PAGE_MODE_PASSWORD);
- set_action_sensitive (ev_window, "ContinuousPage", page_mode != PAGE_MODE_PASSWORD);
- } else {
- set_action_sensitive (ev_window, "SinglePage", FALSE);
- set_action_sensitive (ev_window, "ContinuousPage", FALSE);
- }
-
/* Toolbar-specific actions: */
set_action_sensitive (ev_window, PAGE_SELECTOR_ACTION, has_pages);
set_action_sensitive (ev_window, ZOOM_CONTROL_ACTION, has_pages);
ev_window, 0);
}
- ev_window_set_page_mode (ev_window, PAGE_MODE_SINGLE_PAGE);
+ ev_window_set_page_mode (ev_window, PAGE_MODE_DOCUMENT);
ev_sidebar_set_document (sidebar, document);
window->priv->page_mode = page_mode;
switch (page_mode) {
- case PAGE_MODE_SINGLE_PAGE:
+ case PAGE_MODE_DOCUMENT:
child = window->priv->view;
break;
case PAGE_MODE_PASSWORD:
child = window->priv->password_view;
break;
- case PAGE_MODE_CONTINUOUS_PAGE:
- child = window->priv->page_view;
- break;
default:
g_assert_not_reached ();
}
update_sizing_buttons (ev_window);
}
+static char *
+build_comments_string (void)
+{
+ PopplerBackend backend;
+ const char *backend_name;
+ const char *version;
+
+ backend = poppler_get_backend ();
+ version = poppler_get_version ();
+ switch (backend) {
+ case POPPLER_BACKEND_CAIRO:
+ backend_name = "cairo";
+ break;
+ case POPPLER_BACKEND_SPLASH:
+ backend_name = "splash";
+ break;
+ default:
+ backend_name = "unknown";
+ break;
+ }
+
+ return g_strdup_printf (_("PostScript and PDF File Viewer.\n"
+ "Using poppler %s (%s)"),
+ version, backend_name);
+}
+
static void
ev_window_cmd_help_about (GtkAction *action, EvWindow *ev_window)
{
const char *authors[] = {
- N_("Many..."),
+ "Martin Kretzschmar <m_kretzschmar@gmx.net>",
+ "Jonathan Blandford <jrb@gnome.org>",
+ "Marco Pesenti Gritti <marco@gnome.org>",
+ "Nickolay V. Shmyrev <nshmyrev@yandex.ru>",
+ "Bryan Clark <clarkbw@gnome.org>",
NULL
};
const char *documenters[] = {
- N_("Not so many..."),
+ "Nickolay V. Shmyrev <nshmyrev@yandex.ru>",
NULL
};
};
char *license_trans;
+ char *comments;
#ifdef ENABLE_NLS
const char **p;
license_trans = g_strconcat (_(license[0]), "\n", _(license[1]), "\n",
_(license[2]), "\n", NULL);
+ comments = build_comments_string ();
gtk_show_about_dialog (
GTK_WINDOW (ev_window),
_("\xc2\xa9 1996-2004 The Evince authors"),
"license", license_trans,
"website", "http://www.gnome.org/projects/evince",
- "comments", _("PostScript and PDF File Viewer."),
+ "comments", comments,
"authors", authors,
"documenters", documenters,
"translator-credits", _("translator-credits"),
NULL);
+ g_free (comments);
g_free (license_trans);
}
update_chrome_flag (ev_window, EV_CHROME_FINDBAR, NULL, FALSE);
}
-static void
-ev_window_page_mode_cb (GtkRadioAction *action,
- GtkRadioAction *activated_action,
- EvWindow *window)
-{
- int mode;
-
- mode = gtk_radio_action_get_current_value (action);
-
- g_assert (mode == PAGE_MODE_CONTINUOUS_PAGE ||
- mode == PAGE_MODE_SINGLE_PAGE);
-
- ev_window_set_page_mode (window, (EvWindowPageMode) mode);
-}
-
static void
find_bar_search_changed_cb (EggFindBar *find_bar,
GParamSpec *param,
G_CALLBACK (ev_window_cmd_view_page_width) },
};
-static const GtkRadioActionEntry page_view_entries[] = {
- { "SinglePage", GTK_STOCK_DND, N_("Single"), NULL,
- N_("Show the document one page at a time"),
- PAGE_MODE_SINGLE_PAGE },
- { "ContinuousPage", GTK_STOCK_DND_MULTIPLE, N_("Multi"), NULL,
- N_("Show the full document at once"),
- PAGE_MODE_CONTINUOUS_PAGE }
-};
-
static void
drag_data_received_cb (GtkWidget *widget, GdkDragContext *context,
gint x, gint y, GtkSelectionData *selection_data,
}
}
+static void
+activate_link_cb (EvPageAction *page_action, EvLink *link, EvWindow *window)
+{
+ g_return_if_fail (EV_IS_WINDOW (window));
+
+ ev_page_cache_set_link (window->priv->page_cache, link);
+ gtk_widget_grab_focus (window->priv->view);
+}
+
+static gboolean
+activate_label_cb (EvPageAction *page_action, char *label, EvWindow *window)
+{
+ g_return_val_if_fail (EV_IS_WINDOW (window), FALSE);
+
+ gtk_widget_grab_focus (window->priv->view);
+
+ return ev_page_cache_set_page_label (window->priv->page_cache, label);
+}
+
static void
register_custom_actions (EvWindow *window, GtkActionGroup *group)
{
"tooltip", _("Select Page"),
"visible_overflown", FALSE,
NULL);
+ g_signal_connect (action, "activate_link",
+ G_CALLBACK (activate_link_cb), window);
+ g_signal_connect (action, "activate_label",
+ G_CALLBACK (activate_label_cb), window);
gtk_action_group_add_action (group, action);
g_object_unref (action);
ev_window->priv = EV_WINDOW_GET_PRIVATE (ev_window);
- ev_window->priv->page_mode = PAGE_MODE_SINGLE_PAGE;
+ ev_window->priv->page_mode = PAGE_MODE_DOCUMENT;
update_window_title (NULL, NULL, ev_window);
ev_window->priv->main_box = gtk_vbox_new (FALSE, 0);
gtk_action_group_add_toggle_actions (action_group, toggle_entries,
G_N_ELEMENTS (toggle_entries),
ev_window);
- gtk_action_group_add_radio_actions (action_group, page_view_entries,
- G_N_ELEMENTS (page_view_entries),
- ev_window->priv->page_mode,
- G_CALLBACK (ev_window_page_mode_cb),
- ev_window);
set_action_properties (action_group);
register_custom_actions (ev_window, action_group);