]> www.fi.muni.cz Git - evince.git/blobdiff - backend/ev-document.h
Fix a few bugs
[evince.git] / backend / ev-document.h
index e4ff783305bf65de7e96ae772965968b79378ab3..4cf4601fc0cac639a83eec7cd2288e881ae7a126 100644 (file)
@@ -1,3 +1,4 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; c-indent-level: 8 -*- */
 /*
  *  Copyright (C) 2000-2003 Marco Pesenti Gritti
  *
 
 G_BEGIN_DECLS
 
+typedef struct
+{
+  int page_num;
+  GdkRectangle highlight_area;
+} EvFindResult;
+
 #define EV_TYPE_DOCUMENT           (ev_document_get_type ())
 #define EV_DOCUMENT(o)             (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_DOCUMENT, EvDocument))
 #define EV_DOCUMENT_IFACE(k)       (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_DOCUMENT, EvDocumentIface))
@@ -42,46 +49,81 @@ struct _EvDocumentIface
        GTypeInterface base_iface;
 
        /* Methods  */
-       void        (* load)            (EvDocument *document,
+       gboolean    (* load)            (EvDocument *document,
                                         const char *uri,
-                                        GError     *error);
+                                        GError    **error);
        int         (* get_n_pages)     (EvDocument *document);
        void        (* set_page)        (EvDocument  *document,
                                         int          page);
+       int         (* get_page)        (EvDocument  *document);
        void        (* set_target)      (EvDocument  *document,
                                         GdkDrawable *target);
-       void        (* set_page_rect)   (EvDocument  *document,
+       void        (* set_scale)       (EvDocument  *document,
+                                        double       scale);
+       void        (* set_page_offset) (EvDocument  *document,
                                         int          x,
-                                        int          y,
-                                        int          width,
-                                        int          height);
-       void         (* render)        (EvDocument   *document,
-                                       int           clip_x,
-                                       int           clip_y,
-                                       int           clip_width,
-                                       int           clip_height);
+                                        int          y);
+       void        (* get_page_size)   (EvDocument  *document,
+                                        int         *width,
+                                        int         *height);
+       void        (* render)          (EvDocument  *document,
+                                        int          clip_x,
+                                        int          clip_y,
+                                        int          clip_width,
+                                        int          clip_height);
+        
+        void         (* begin_find)     (EvDocument    *document,
+                                         const char    *search_string,
+                                         gboolean       case_sensitive);
+        void         (* end_find)       (EvDocument    *document);
+
+        /* Signals */
+
+        /* "found" emitted at least 1 time (possibly with n_results == 0)
+         * for any call to begin_find; also emitted with NULL,0 when
+        * you end_find. Calling begin_find twice without calling end_find
+        * is considered OK.
+         */
+        void         (* found)          (EvDocument         *document,
+                                         const EvFindResult *results,
+                                         int                 n_results,
+                                         double              percent_complete);
 };
 
 GType ev_document_get_type (void);
 
-void ev_document_load          (EvDocument  *document,
-                               const char  *uri,
-                               GError      *error);
-int  ev_document_get_n_pages   (EvDocument  *document);
-void ev_document_set_page      (EvDocument  *document,
-                               int          page);
-void ev_document_set_target    (EvDocument  *document,
-                               GdkDrawable *target);
-void ev_document_set_page_rect (EvDocument  *document,
-                               int          x,
-                               int          y,
-                               int          width,
-                               int          height);
-void ev_document_render        (EvDocument  *document,
-                               int          clip_x,
-                               int          clip_y,
-                               int          clip_width,
-                               int          clip_height);
+gboolean ev_document_load            (EvDocument   *document,
+                                     const char   *uri,
+                                     GError      **error);
+int      ev_document_get_n_pages     (EvDocument   *document);
+void     ev_document_set_page        (EvDocument   *document,
+                                     int           page);
+int      ev_document_get_page        (EvDocument   *document);
+void     ev_document_set_target      (EvDocument   *document,
+                                     GdkDrawable  *target);
+void     ev_document_set_scale       (EvDocument   *document,
+                                     double        scale);
+void     ev_document_set_page_offset (EvDocument   *document,
+                                     int           x,
+                                     int           y);
+void     ev_document_get_page_size   (EvDocument   *document,
+                                     int          *width,
+                                     int          *height);
+void     ev_document_render          (EvDocument   *document,
+                                     int           clip_x,
+                                     int           clip_y,
+                                     int           clip_width,
+                                     int           clip_height);
+void     ev_document_begin_find    (EvDocument   *document,
+                                    const char   *search_string,
+                                    gboolean      case_sensitive);
+void     ev_document_end_find      (EvDocument   *document);
+
+void     ev_document_found         (EvDocument         *document,
+                                   const EvFindResult *results,
+                                   int                 n_results,
+                                   double              percent_complete);
+                                   
 
 G_END_DECLS