diff options
author | Marco Pesenti Gritti <marco@gnome.org> | 2005-01-29 17:50:09 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2005-01-29 17:50:09 (GMT) |
commit | ae6a79781ff5126c19c84570277376f43158ec86 (patch) | |
tree | 4c651919b908c727faeb2382349fcb94e8622054 /backend/ev-document-find.c | |
parent | e3982b8f8ea505493dafd8be937bb574621b1a73 (diff) |
Enanche the find interface to be really able to do multi page find.
2005-01-29 Marco Pesenti Gritti <marco@gnome.org>
* backend/ev-backend-marshalers.list:
* backend/ev-document-find.c: (ev_document_find_base_init),
(ev_document_find_cancel), (ev_document_find_page_has_results),
(ev_document_find_get_n_results), (ev_document_find_get_result),
(ev_document_find_get_progress), (ev_document_find_changed):
* backend/ev-document-find.h:
Enanche the find interface to be really able to do
multi page find.
* pdf/xpdf/pdf-document.cc:
Implement
* shell/ev-view.c: (ev_view_finalize), (highlight_find_results),
(expose_bin_window), (ev_view_init),
(ev_view_get_find_status_message), (find_changed_cb),
(ev_view_set_document), (set_document_page):
Adapt to the new interface. A few things are regressed sorry,
I will finish it soon.
Diffstat (limited to 'backend/ev-document-find.c')
-rw-r--r-- | backend/ev-document-find.c | 52 |
1 files changed, 37 insertions, 15 deletions
diff --git a/backend/ev-document-find.c b/backend/ev-document-find.c index 78c07c9..9dc05c4 100644 --- a/backend/ev-document-find.c +++ b/backend/ev-document-find.c @@ -53,16 +53,13 @@ ev_document_find_base_init (gpointer g_class) static gboolean initialized = FALSE; if (!initialized) { - g_signal_new ("found", + g_signal_new ("find_changed", EV_TYPE_DOCUMENT_FIND, G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (EvDocumentFindIface, found), + G_STRUCT_OFFSET (EvDocumentFindIface, find_changed), NULL, NULL, - _ev_backend_marshal_VOID__POINTER_INT_DOUBLE, - G_TYPE_NONE, 3, - G_TYPE_POINTER, - G_TYPE_INT, - G_TYPE_DOUBLE); + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); initialized = TRUE; } @@ -85,18 +82,43 @@ ev_document_find_cancel (EvDocumentFind *document_find) { EvDocumentFindIface *iface = EV_DOCUMENT_FIND_GET_IFACE (document_find); iface->cancel (document_find); +} + +int +ev_document_find_page_has_results (EvDocumentFind *document_find, + int page) +{ + EvDocumentFindIface *iface = EV_DOCUMENT_FIND_GET_IFACE (document_find); + return iface->page_has_results (document_find, page); +} + +int +ev_document_find_get_n_results (EvDocumentFind *document_find) +{ + EvDocumentFindIface *iface = EV_DOCUMENT_FIND_GET_IFACE (document_find); + return iface->get_n_results (document_find); +} + +gboolean +ev_document_find_get_result (EvDocumentFind *document_find, + int n_result, + GdkRectangle *rectangle) +{ + EvDocumentFindIface *iface = EV_DOCUMENT_FIND_GET_IFACE (document_find); + return iface->get_result (document_find, n_result, rectangle); +} - ev_document_find_found (document_find, NULL, 0, 1.0); +void +ev_document_find_get_progress (EvDocumentFind *document_find, + double percent_complete) +{ + EvDocumentFindIface *iface = EV_DOCUMENT_FIND_GET_IFACE (document_find); + iface->get_progress (document_find, percent_complete); } void -ev_document_find_found (EvDocumentFind *document_find, - const EvFindResult *results, - int n_results, - double percent_complete) +ev_document_find_changed (EvDocumentFind *document_find) { - g_signal_emit_by_name (document_find, - "found", - results, n_results, percent_complete); + g_signal_emit_by_name (document_find, "find_changed"); } |