From 1f7e03f2861f4b8d2bb75bd220754b7a89b7847e Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Thu, 23 Dec 2004 06:59:04 +0000 Subject: hook up potentially-questionable "find results status text" feature - 2004-12-23 Havoc Pennington * 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 --- (limited to 'shell/ev-window.c') 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), -- cgit v0.9.1