#include <glib.h>
#include <gdk/gdk.h>
-G_BEGIN_DECLS
+#include "ev-document.h" /* For EvRectangle */
-typedef struct
-{
- int page_num;
- GdkRectangle highlight_area;
-} EvFindResult;
+G_BEGIN_DECLS
#define EV_TYPE_DOCUMENT_FIND (ev_document_find_get_type ())
#define EV_DOCUMENT_FIND(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT_FIND, EvDocumentFind))
/* Methods */
- void (* begin) (EvDocumentFind *document_find,
- const char *search_string,
- gboolean case_sensitive);
- void (* cancel) (EvDocumentFind *document_find);
+ void (* begin) (EvDocumentFind *document_find,
+ int page,
+ const char *search_string,
+ gboolean case_sensitive);
+ void (* cancel) (EvDocumentFind *document_find);
+ int (* page_has_results) (EvDocumentFind *document_find,
+ int page);
+ int (* get_n_results) (EvDocumentFind *document_find,
+ int page);
+ gboolean (* get_result) (EvDocumentFind *document_find,
+ int page,
+ int n_result,
+ EvRectangle *rectangle);
+ double (* get_progress) (EvDocumentFind *document_find);
/* Signals */
- void (* found) (EvDocumentFind *document_find,
- const EvFindResult *results,
- int n_results,
- double percent_complete);
+ void (* find_changed) (EvDocumentFind *document_find,
+ int page);
};
-GType ev_document_find_get_type (void);
-
-void ev_document_find_begin (EvDocumentFind *document_find,
- const char *search_string,
- gboolean case_sensitive);
-void ev_document_find_cancel (EvDocumentFind *document_find);
-void ev_document_find_found (EvDocumentFind *document_find,
- const EvFindResult *results,
- int n_results,
- double percent_complete);
-
+GType ev_document_find_get_type (void);
+void ev_document_find_begin (EvDocumentFind *document_find,
+ int page,
+ const char *search_string,
+ gboolean case_sensitive);
+void ev_document_find_cancel (EvDocumentFind *document_find);
+int ev_document_find_page_has_results (EvDocumentFind *document_find,
+ int page);
+int ev_document_find_get_n_results (EvDocumentFind *document_find,
+ int page);
+gboolean ev_document_find_get_result (EvDocumentFind *document_find,
+ int page,
+ int n_result,
+ EvRectangle *rectangle);
+double ev_document_find_get_progress (EvDocumentFind *document_find);
+void ev_document_find_changed (EvDocumentFind *document_find,
+ int page);
/* How this interface works:
*
*
* cancel() cancels a search if any, otherwise does nothing.
*
- * If begin() has been called and cancel() has not, then the
- * "found" signal can be emitted at any time.
- * The results given in the "found" signal are always all-inclusive,
- * that is, the array will contain all results found so far.
- * There are no guarantees about the ordering of the array,
- * or consistency of ordering between "found" signal emissions.
- *
- * When cancel() is called, "found" will always be emitted with NULL,0
*/
G_END_DECLS