[evince/hildon-2-28] Hildonise EvWindow
- From: Christian Persch <chpe src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [evince/hildon-2-28] Hildonise EvWindow
- Date: Mon, 26 Oct 2009 12:12:09 +0000 (UTC)
commit 7a5a10e5bf7f96cf89a5b5dd3994faabf17bc3ff
Author: Christian Persch <chpe gnome org>
Date: Fri Jun 5 00:34:30 2009 +0200
Hildonise EvWindow
Basic hildonisation: change parent type, add app menu instead of
menubar, and use hildon filechoosers.
data/Makefile.am | 7 +++-
data/evince-hildon-ui.xml | 103 +++++++++++++++++++++++++++++++++++++++++++++
shell/ev-window.c | 59 +++++++++++++++++++++++---
shell/ev-window.h | 12 +++++
4 files changed, 173 insertions(+), 8 deletions(-)
---
diff --git a/data/Makefile.am b/data/Makefile.am
index 883a3aa..106b72e 100644
--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -16,10 +16,15 @@ man_MANS=evince.1
uidir = $(pkgdatadir)
ui_DATA = \
- evince-ui.xml \
evince-toolbar.xml \
hand-open.png
+if !PLATFORM_HILDON
+ui_DATA += evince-ui.xml
+else
+ui_DATA += evince-hildon-ui.xml
+endif
+
if ENABLE_PREVIEWER
ui_DATA += evince-previewer-ui.xml
endif
diff --git a/data/evince-hildon-ui.xml b/data/evince-hildon-ui.xml
new file mode 100644
index 0000000..6b32bd0
--- /dev/null
+++ b/data/evince-hildon-ui.xml
@@ -0,0 +1,103 @@
+<ui>
+ <popup name="MainMenu">
+ <menu name="FileMenu" action="File">
+ <menuitem name="FileOpenMenu" action="FileOpen"/>
+ <menuitem name="FileSaveAsMenu" action="FileSaveAs"/>
+ <separator/>
+ <menuitem name="FilePropertiesMenu" action="FileProperties"/>
+ <separator/>
+ <placeholder name="RecentFilesMenu"/>
+ </menu>
+
+ <menu name="EditMenu" action="Edit">
+ <menuitem name="EditCopyMenu" action="EditCopy"/>
+ <separator/>
+ <menuitem name="EditSelectAllMenu" action="EditSelectAll"/>
+ <separator/>
+ <menuitem name="EditFindMenu" action="EditFind"/>
+ <menuitem name="EditFindNextMenu" action="EditFindNext"/>
+ <separator/>
+ <menuitem name="EditRotateLeftMenu" action="EditRotateLeft"/>
+ <menuitem name="EditRotateRigtMenu" action="EditRotateRight"/>
+ </menu>
+
+ <menu name="ViewMenu" action="View">
+ <menuitem name="ViewToolbarMenu" action="ViewToolbar"/>
+ <menuitem name="ViewSidebarMenu" action="ViewSidebar"/>
+ <separator/>
+ <menuitem name="ViewFullscreenMenu" action="ViewFullscreen"/>
+ <menuitem name="ViewPresentationMenu" action="ViewPresentation"/>
+ <separator/>
+ <menuitem name="ViewContinuousMenu" action="ViewContinuous"/>
+ <menuitem name="ViewDualMenu" action="ViewDual"/>
+ <menuitem name="ViewZoomInMenu" action="ViewZoomIn"/>
+ <menuitem name="ViewZoomInMenu" action="ViewZoomIn"/>
+ <menuitem name="ViewZoomOutMenu" action="ViewZoomOut"/>
+ <menuitem name="ViewBestFitMenu" action="ViewBestFit"/>
+ <menuitem name="ViewPageWidthMenu" action="ViewPageWidth"/>
+ <separator/>
+ <menuitem name="ViewReload" action="ViewReload"/>
+ </menu>
+
+ <menu name="GoMenu" action="Go">
+ <menuitem name="GoPreviousPageMenu" action="GoPreviousPage"/>
+ <menuitem name="GoNextPageMenu" action="GoNextPage"/>
+ <separator/>
+ <menuitem name="GoFirstPageMenu" action="GoFirstPage"/>
+ <menuitem name="GoLastPageMenu" action="GoLastPage"/>
+ </menu>
+
+ <menu name="HelpMenu" action="Help">
+ <menuitem name="HelpAboutMenu" action="HelpAbout"/>
+ </menu>
+ <menuitem name="FileCloseWindowMenu" action="FileCloseWindow"/>
+ </popup>
+
+ <popup name="DocumentPopup" action="PopupAction">
+ <menuitem name="OpenLink" action="OpenLink"/>
+ <menuitem name="CopyLinkAddress" action="CopyLinkAddress"/>
+ <menuitem name="GoLink" action="GoLink"/>
+ <separator/>
+ <menuitem name="GoPreviousPage" action="GoPreviousPage"/>
+ <menuitem name="GoNextPage" action="GoNextPage"/>
+ <menuitem name="ViewReload" action="ViewReload"/>
+ <separator/>
+ <menuitem name="EditCopy" action="EditCopy"/>
+ <menuitem name="EditSelectAllPopup" action="EditSelectAll"/>
+ </popup>
+
+ <toolbar name="DefaultToolBar">
+ <toolitem action="FileOpen"/>
+ <separator/>
+ <toolitem action="GoFirstPage"/>
+ <toolitem action="GoPreviousPage"/>
+ <toolitem action="PageSelector"/>
+ <toolitem action="GoNextPage"/>
+ <toolitem action="GoLastPage"/>
+ <separator/>
+ <toolitem action="ViewZoom"/>
+ </toolbar>
+
+ <accelerator name="PageDownAccel" action="PageDown"/>
+ <accelerator name="PageUpAccel" action="PageUp"/>
+ <accelerator name="GoBackwardFastAccel" action="GoBackwardFast"/>
+ <accelerator name="GoForwardFastAccel" action="GoForwardFast"/>
+ <accelerator name="EscapeAccel" action="Escape"/>
+ <accelerator name="SlashAccel" action="Slash"/>
+ <accelerator name="SpaceAccel" action="Space"/>
+ <accelerator name="ReturnAccel" action="Return"/>
+ <accelerator name="BackSpaceAccel" action="BackSpace"/>
+ <accelerator name="ShiftSpaceAccel" action="ShiftSpace"/>
+ <accelerator name="ShiftBackSpaceAccel" action="ShiftBackSpace"/>
+ <accelerator name="ShiftReturnAccel" action="ShiftReturn"/>
+ <accelerator name="FocusPageSelectorAccel" action="FocusPageSelector"/>
+ <accelerator name="PlusAccel" action="Plus"/>
+ <accelerator name="MinusAccel" action="Minus"/>
+ <accelerator name="Equal" action="Equal"/>
+ <accelerator name="CtrlEqualAccel" action="CtrlEqual"/>
+ <accelerator name="KpPlusAccel" action="KpPlus"/>
+ <accelerator name="KpMinusAccel" action="KpMinus"/>
+ <accelerator name="CtrlKpPlusAccel" action="CtrlKpPlus"/>
+ <accelerator name="CtrlKpMinusAccel" action="CtrlKpMinus"/>
+
+</ui>
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 9e24e05..32ddc9a 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -98,6 +98,10 @@
#include <poppler.h>
#endif
+#ifdef PLATFORM_HILDON
+#include <hildon/hildon-file-chooser-dialog.h>
+#endif
+
typedef enum {
PAGE_MODE_DOCUMENT,
PAGE_MODE_PASSWORD
@@ -306,7 +310,11 @@ static void ev_window_media_player_key_pressed (EvWindow *windo
gpointer user_data);
static void ev_window_save_print_page_setup (EvWindow *window);
+#ifndef PLATFORM_HILDON
G_DEFINE_TYPE (EvWindow, ev_window, GTK_TYPE_WINDOW)
+#else
+G_DEFINE_TYPE (EvWindow, ev_window, HILDON_TYPE_WINDOW)
+#endif
static void
ev_window_set_action_sensitive (EvWindow *ev_window,
@@ -514,6 +522,9 @@ ev_window_set_view_accels_sensitivity (EvWindow *window, gboolean sensitive)
static void
set_widget_visibility (GtkWidget *widget, gboolean visible)
{
+ if (!widget)
+ return;
+
g_assert (GTK_IS_WIDGET (widget));
if (visible)
@@ -2077,6 +2088,7 @@ ev_window_cmd_file_open (GtkAction *action, EvWindow *window)
const gchar *default_uri;
gchar *parent_uri = NULL;
+#ifndef PLATFORM_HILDON
chooser = gtk_file_chooser_dialog_new (_("Open Document"),
GTK_WINDOW (window),
GTK_FILE_CHOOSER_ACTION_OPEN,
@@ -2085,8 +2097,22 @@ ev_window_cmd_file_open (GtkAction *action, EvWindow *window)
GTK_STOCK_OPEN, GTK_RESPONSE_OK,
NULL);
- ev_document_factory_add_filters (chooser, NULL);
gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (chooser), TRUE);
+
+ gtk_dialog_set_default_response (GTK_DIALOG (chooser), GTK_RESPONSE_OK);
+ gtk_dialog_set_alternative_button_order (GTK_DIALOG (chooser),
+ GTK_RESPONSE_OK,
+ GTK_RESPONSE_CANCEL,
+ -1);
+
+#else
+
+ chooser = hildon_file_chooser_dialog_new (GTK_WINDOW (window),
+ GTK_FILE_CHOOSER_ACTION_OPEN);
+ gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (chooser), FALSE);
+#endif /* !PLATFORM_HILDON */
+
+ ev_document_factory_add_filters (chooser, NULL);
gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (chooser), FALSE);
default_uri = ev_application_get_filechooser_uri (EV_APP, GTK_FILE_CHOOSER_ACTION_OPEN);
@@ -2629,19 +2655,25 @@ ev_window_cmd_save_as (GtkAction *action, EvWindow *ev_window)
GFile *file;
const gchar *default_uri;
+#ifndef PLATFORM_HILDON
fc = gtk_file_chooser_dialog_new (
_("Save a Copy"),
GTK_WINDOW (ev_window), GTK_FILE_CHOOSER_ACTION_SAVE,
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_SAVE, GTK_RESPONSE_OK,
NULL);
-
- ev_document_factory_add_filters (fc, ev_window->priv->document);
gtk_dialog_set_default_response (GTK_DIALOG (fc), GTK_RESPONSE_OK);
gtk_dialog_set_alternative_button_order (GTK_DIALOG (fc),
GTK_RESPONSE_OK,
GTK_RESPONSE_CANCEL,
-1);
+#else
+
+ fc = hildon_file_chooser_dialog_new (GTK_WINDOW (ev_window),
+ GTK_FILE_CHOOSER_ACTION_OPEN);
+#endif /* !PLATFORM_HILDON */
+
+ ev_document_factory_add_filters (fc, ev_window->priv->document);
gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (fc), FALSE);
gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (fc), TRUE);
@@ -5924,6 +5956,7 @@ ev_window_media_player_key_pressed (EvWindow *window,
static void
ev_window_init (EvWindow *ev_window)
{
+ EvWindowPrivate *priv;
GtkActionGroup *action_group;
GtkAccelGroup *accel_group;
GError *error = NULL;
@@ -5936,7 +5969,7 @@ ev_window_init (EvWindow *ev_window)
g_signal_connect (ev_window, "window_state_event",
G_CALLBACK (window_state_event_cb), NULL);
- ev_window->priv = EV_WINDOW_GET_PRIVATE (ev_window);
+ priv = ev_window->priv = EV_WINDOW_GET_PRIVATE (ev_window);
ev_window->priv->page_mode = PAGE_MODE_DOCUMENT;
ev_window->priv->title = ev_window_title_new (ev_window);
@@ -5985,9 +6018,13 @@ ev_window_init (EvWindow *ev_window)
action_group, 0);
ui_path = g_build_filename (ev_application_get_data_dir (EV_APP),
- "evince-ui.xml", NULL);
- if (!gtk_ui_manager_add_ui_from_file (
- ev_window->priv->ui_manager, ui_path, &error))
+#ifndef PLATFORM_HILDON
+ "evince-ui.xml",
+#else
+ "evince-hildon-ui.xml",
+#endif
+ NULL);
+ if (!gtk_ui_manager_add_ui_from_file (priv->ui_manager, ui_path, &error))
{
g_warning ("building menus failed: %s", error->message);
g_error_free (error);
@@ -6002,6 +6039,7 @@ ev_window_init (EvWindow *ev_window)
G_CALLBACK (ev_window_setup_recent),
ev_window);
+#ifndef PLATFORM_HILDON
ev_window->priv->menubar =
gtk_ui_manager_get_widget (ev_window->priv->ui_manager,
"/MainMenu");
@@ -6023,6 +6061,13 @@ ev_window_init (EvWindow *ev_window)
FALSE, FALSE, 0);
gtk_widget_show (ev_window->priv->toolbar);
+#else /* PLATFORM_HILDON */
+ hildon_window_set_menu (HILDON_WINDOW (ev_window),
+ GTK_MENU (gtk_ui_manager_get_widget (priv->ui_manager, "/MainMenu")));
+ priv->toolbar = gtk_ui_manager_get_widget (priv->ui_manager, "/DefaultToolBar");
+ hildon_window_add_toolbar (HILDON_WINDOW (ev_window), GTK_TOOLBAR (priv->toolbar));
+#endif
+
/* Add the main area */
ev_window->priv->hpaned = gtk_hpaned_new ();
g_signal_connect (ev_window->priv->hpaned,
diff --git a/shell/ev-window.h b/shell/ev-window.h
index 1df15ec..1dd0a05 100644
--- a/shell/ev-window.h
+++ b/shell/ev-window.h
@@ -26,6 +26,10 @@
#include <glib.h>
#include <gtk/gtk.h>
+#ifdef PLATFORM_HILDON
+#include <hildon/hildon-window.h>
+#endif
+
#include "ev-link.h"
#include "ev-page-cache.h"
@@ -61,12 +65,20 @@ typedef struct _EvWindowPrivate EvWindowPrivate;
struct _EvWindow {
+#ifndef PLATFORM_HILDON
GtkWindow base_instance;
+#else
+ HildonWindow base_instance;
+#endif
EvWindowPrivate *priv;
};
struct _EvWindowClass {
+#ifndef PLATFORM_HILDON
GtkWindowClass base_class;
+#else
+ HildonWindowClass base_class;
+#endif
};
GType ev_window_get_type (void);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]