From db4719bf8f445529477290060d64637f134329b2 Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Mon, 17 Jul 2006 19:44:13 +0000 Subject: Add preview toolbar (hidden by default) 2006-07-17 Carlos Garcia Campos * data/evince-toolbar.xml: Add preview toolbar (hidden by default) * shell/ev-application-service.xml: * shell/ev-application.[ch]: * shell/ev-jobs.[ch]: * shell/ev-window.[ch]: (ev_window_run_preview): * shell/main.c: Add preview mode to use evince as a printing previewer. It also adds other command line options for fullscreen and presentation modes. Fixes bugs #347822, #317031 --- (limited to 'shell/ev-application.c') diff --git a/shell/ev-application.c b/shell/ev-application.c index 381b4e3..b7002a7 100644 --- a/shell/ev-application.c +++ b/shell/ev-application.c @@ -239,6 +239,7 @@ void ev_application_open_uri_at_dest (EvApplication *application, const char *uri, EvLinkDest *dest, + EvWindowRunMode mode, guint timestamp) { EvWindow *new_window; @@ -263,7 +264,7 @@ ev_application_open_uri_at_dest (EvApplication *application, /* We need to load uri before showing the window, so we can restore window size without flickering */ - ev_window_open_uri (new_window, uri, dest); + ev_window_open_uri (new_window, uri, dest, mode); gtk_widget_show (GTK_WIDGET (new_window)); @@ -274,21 +275,34 @@ ev_application_open_uri_at_dest (EvApplication *application, gboolean ev_application_open_uri (EvApplication *application, const char *uri, - const char *page_label, + GHashTable *args, guint timestamp, GError **error) { - - if (page_label && strcmp (page_label, "") != 0) { - EvLinkDest *dest; + EvLinkDest *dest = NULL; + EvWindowRunMode mode = EV_WINDOW_MODE_NORMAL; + + if (args) { + GValue *value = NULL; + + value = g_hash_table_lookup (args, "page-label"); + if (value) { + const gchar *page_label; + + page_label = g_value_get_string (value); + dest = ev_link_dest_new_page_label (page_label); + } - dest = ev_link_dest_new_page_label (page_label); + value = g_hash_table_lookup (args, "mode"); + if (value) { + mode = g_value_get_uint (value); + } + } + + ev_application_open_uri_at_dest (application, uri, dest, mode, timestamp); - ev_application_open_uri_at_dest (application, uri, dest, timestamp); + if (dest) g_object_unref (dest); - } else { - ev_application_open_uri_at_dest (application, uri, NULL, timestamp); - } return TRUE; } @@ -346,9 +360,9 @@ ev_application_init (EvApplication *ev_application) DATADIR "/evince-toolbar.xml"); if (!egg_toolbars_model_load_toolbars (ev_application->toolbars_model, - ev_application->toolbars_file)) { + ev_application->toolbars_file)) { egg_toolbars_model_load_toolbars (ev_application->toolbars_model, - DATADIR"/evince-toolbar.xml"); + DATADIR"/evince-toolbar.xml"); } egg_toolbars_model_set_flags (ev_application->toolbars_model, 0, -- cgit v0.9.1