Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@gnome.org>2005-01-07 10:30:52 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-01-07 10:30:52 (GMT)
commit3a87fe3d6bd17d8151c675c9b4e9294619127b1b (patch)
tree17ce19206a2f6b3f82a303337ad672925b94cbc1
parenta369c69460912502c842baffe73a373134f02fca (diff)
Cleanup and add select all.
2005-01-07 Marco Pesenti Gritti <marco@gnome.org> * data/evince-ui.xml: Cleanup and add select all. * shell/ev-view.c: (ev_view_select_all), (ev_view_button_press_event): * shell/ev-view.h: * shell/ev-window.c: (ev_window_cmd_edit_select_all): Add select all. Clear selection on click.
-rw-r--r--ChangeLog14
-rw-r--r--data/evince-ui.xml11
-rw-r--r--shell/ev-view.c20
-rw-r--r--shell/ev-view.h1
-rw-r--r--shell/ev-window.c12
5 files changed, 53 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 08647d4..a9ec90e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2005-01-07 Marco Pesenti Gritti <marco@gnome.org>
+
+ * data/evince-ui.xml:
+
+ Cleanup and add select all.
+
+ * shell/ev-view.c: (ev_view_select_all),
+ (ev_view_button_press_event):
+ * shell/ev-view.h:
+ * shell/ev-window.c: (ev_window_cmd_edit_select_all):
+
+ Add select all.
+ Clear selection on click.
+
Fri Jan 7 01:28:58 2005 Jonathan Blandford <jrb@redhat.com>
* shell/ev-sidebar-thumbnails.c
diff --git a/data/evince-ui.xml b/data/evince-ui.xml
index 8452c68..ffeb696 100644
--- a/data/evince-ui.xml
+++ b/data/evince-ui.xml
@@ -12,6 +12,9 @@
<menu name="EditMenu" action="Edit">
<menuitem name="EditCopyMenu" action="EditCopy"/>
+ <separator/>
+ <menuitem name="EditSelectAllMenu" action="EditSelectAll"/>
+ <separator/>
<menuitem name="EditFindMenu" action="EditFind"/>
</menu>
@@ -19,9 +22,9 @@
<menuitem name="ViewToolbarMenu" action="ViewToolbar"/>
<menuitem name="ViewStatusbarMenu" action="ViewStatusbar"/>
<menuitem name="ViewSidebarMenu" action="ViewSidebar"/>
- <separator name="ViewSep1"/>
+ <separator/>
<menuitem name="ViewFullscreenMenu" action="ViewFullscreen"/>
- <separator name="ViewSep2"/>
+ <separator/>
<menuitem name="ViewZoomInMenu" action="ViewZoomIn"/>
<menuitem name="ViewZoomOutMenu" action="ViewZoomOut"/>
<menuitem name="ViewNormalSizeMenu" action="ViewNormalSize"/>
@@ -32,10 +35,10 @@
<menu name="GoMenu" action="Go">
<menuitem name="GoBackMenu" action="GoBack"/>
<menuitem name="GoForwardMenu" action="GoForward"/>
- <separator name="GoSep1"/>
+ <separator/>
<menuitem name="GoPageUpMenu" action="GoPageUp"/>
<menuitem name="GoPageDownMenu" action="GoPageDown"/>
- <separator name="GoSep2"/>
+ <separator/>
<menuitem name="GoFirstPageMenu" action="GoFirstPage"/>
<menuitem name="GoLastPageMenu" action="GoLastPage"/>
</menu>
diff --git a/shell/ev-view.c b/shell/ev-view.c
index 9936ce1..f878812 100644
--- a/shell/ev-view.c
+++ b/shell/ev-view.c
@@ -422,6 +422,21 @@ ev_view_expose_event (GtkWidget *widget,
}
void
+ev_view_select_all (EvView *ev_view)
+{
+ GtkWidget *widget = GTK_WIDGET (ev_view);
+
+ g_return_if_fail (EV_IS_VIEW (ev_view));
+
+ ev_view->has_selection = TRUE;
+ ev_view->selection.x = ev_view->selection.y = 0;
+ ev_view->selection.width = widget->requisition.width;
+ ev_view->selection.height = widget->requisition.height;
+
+ gtk_widget_queue_draw (widget);
+}
+
+void
ev_view_copy (EvView *ev_view)
{
GtkClipboard *clipboard;
@@ -490,6 +505,11 @@ ev_view_button_press_event (GtkWidget *widget,
switch (event->button) {
case 1:
+ if (view->has_selection) {
+ view->has_selection = FALSE;
+ gtk_widget_queue_draw (widget);
+ }
+
view->selection.x = event->x;
view->selection.y = event->y;
view->selection.width = 0;
diff --git a/shell/ev-view.h b/shell/ev-view.h
index cddd274..c68bf9f 100644
--- a/shell/ev-view.h
+++ b/shell/ev-view.h
@@ -37,6 +37,7 @@ typedef struct _EvViewClass EvViewClass;
GType ev_view_get_type (void) G_GNUC_CONST;
GtkWidget* ev_view_new (void);
void ev_view_copy (EvView *view);
+void ev_view_select_all (EvView *view);
void ev_view_set_document (EvView *view,
EvDocument *document);
void ev_view_set_page (EvView *view,
diff --git a/shell/ev-window.c b/shell/ev-window.c
index e110e1d..8f01111 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -584,6 +584,14 @@ find_not_supported_dialog (EvWindow *ev_window)
}
static void
+ev_window_cmd_edit_select_all (GtkAction *action, EvWindow *ev_window)
+{
+ g_return_if_fail (EV_IS_WINDOW (ev_window));
+
+ ev_view_select_all (EV_VIEW (ev_window->priv->view));
+}
+
+static void
ev_window_cmd_edit_find (GtkAction *action, EvWindow *ev_window)
{
g_return_if_fail (EV_IS_WINDOW (ev_window));
@@ -1239,7 +1247,9 @@ static GtkActionEntry entries[] = {
{ "EditCopy", GTK_STOCK_COPY, N_("_Copy"), "<control>C",
N_("Copy text from the document"),
G_CALLBACK (ev_window_cmd_edit_copy) },
-
+ { "EditSelectAll", NULL, N_("Select _All"), "<control>A",
+ N_("Select the entire page"),
+ G_CALLBACK (ev_window_cmd_edit_select_all) },
{ "EditFind", GTK_STOCK_FIND, N_("_Find"), "<control>F",
N_("Find a word or phrase in the document"),
G_CALLBACK (ev_window_cmd_edit_find) },