Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-window.c
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2004-12-23 06:59:04 (GMT)
committer Havoc Pennington <hp@src.gnome.org>2004-12-23 06:59:04 (GMT)
commit1f7e03f2861f4b8d2bb75bd220754b7a89b7847e (patch)
tree3611ca7d83d0ed053c4333fde49467fec742cd3a /shell/ev-window.c
parent99c9d3fafb8944bedbad648b8ba8f2c9a5c7ac29 (diff)
hook up potentially-questionable "find results status text" feature -
2004-12-23 Havoc Pennington <hp@redhat.com> * shell/ev-window.c: hook up potentially-questionable "find results status text" feature - something involving the sidebar or scrollbar or a continuous all-pages-on-giant-roll-of-paper-view might be better in the end. * shell/ev-view.c (ev_view_get_find_status_message): new function, with corresponding signal when it should be updated * shell/eggfindbar.c (egg_find_bar_set_status_text): new function
Diffstat (limited to 'shell/ev-window.c')
-rw-r--r--shell/ev-window.c25
1 files changed, 21 insertions, 4 deletions
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 405f86b..27edfee 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -895,6 +895,20 @@ view_page_changed_cb (EvView *view,
}
static void
+view_find_status_changed_cb (EvView *view,
+ EvWindow *ev_window)
+{
+ char *text;
+
+ text = ev_view_get_find_status_message (view);
+
+ egg_find_bar_set_status_text (EGG_FIND_BAR (ev_window->priv->find_bar),
+ text);
+
+ g_free (text);
+}
+
+static void
find_bar_previous_cb (EggFindBar *find_bar,
EvWindow *ev_window)
{
@@ -946,15 +960,14 @@ find_bar_search_changed_cb (EggFindBar *find_bar,
g_printerr ("search for '%s'\n", search_string ? search_string : "(nil)");
#endif
- /* We don't require begin/end find calls to be matched up, it's really
- * start_find and cancel_any_find_that_may_not_be_finished
- */
if (ev_window->priv->document &&
EV_IS_DOCUMENT_FIND (ev_window->priv->document)) {
if (visible && search_string) {
ev_document_find_begin (EV_DOCUMENT_FIND (ev_window->priv->document), search_string, case_sensitive);
} else {
ev_document_find_cancel (EV_DOCUMENT_FIND (ev_window->priv->document));
+ egg_find_bar_set_status_text (EGG_FIND_BAR (ev_window->priv->find_bar),
+ NULL);
}
}
}
@@ -1218,7 +1231,11 @@ ev_window_init (EvWindow *ev_window)
"page-changed",
G_CALLBACK (view_page_changed_cb),
ev_window);
-
+ g_signal_connect (ev_window->priv->view,
+ "find-status-changed",
+ G_CALLBACK (view_find_status_changed_cb),
+ ev_window);
+
ev_window->priv->statusbar = gtk_statusbar_new ();
gtk_widget_show (ev_window->priv->statusbar);
gtk_box_pack_end (GTK_BOX (ev_window->priv->main_box),