]> www.fi.muni.cz Git - evince.git/blobdiff - libview/ev-view-private.h
[dualscreen] fix crash on ctrl+w and fix control window closing
[evince.git] / libview / ev-view-private.h
index d0519d7ac219231fe5ee519c34f499dc7b659366..3355457614c4ae3618234955f9d12203964b7604 100644 (file)
@@ -15,7 +15,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 #if !defined (EVINCE_COMPILATION)
 #define __EV_VIEW_PRIVATE_H__
 
 #include "ev-view.h"
+#include "ev-document-model.h"
 #include "ev-pixbuf-cache.h"
 #include "ev-page-cache.h"
 #include "ev-jobs.h"
 #include "ev-image.h"
 #include "ev-form-field.h"
 #include "ev-selection.h"
-#include "ev-transition-animation.h"
+#include "ev-view-cursor.h"
 
 #define DRAG_HISTORY 10
 
@@ -100,23 +101,6 @@ typedef enum {
        SCROLL_TO_FIND_LOCATION,
 } PendingScroll;
 
-typedef enum {
-       EV_VIEW_CURSOR_NORMAL,
-       EV_VIEW_CURSOR_IBEAM,
-       EV_VIEW_CURSOR_LINK,
-       EV_VIEW_CURSOR_WAIT,
-       EV_VIEW_CURSOR_HIDDEN,
-       EV_VIEW_CURSOR_DRAG,
-       EV_VIEW_CURSOR_AUTOSCROLL,
-} EvViewCursor;
-
-typedef enum {
-       EV_PRESENTATION_NORMAL,
-       EV_PRESENTATION_BLACK,
-       EV_PRESENTATION_WHITE,
-       EV_PRESENTATION_END
-} EvPresentationState;
-
 typedef struct _EvHeightToPageCache {
        gint rotation;
        gdouble *height_to_page;
@@ -126,6 +110,9 @@ typedef struct _EvHeightToPageCache {
 struct _EvView {
        GtkLayout layout;
 
+       /* Container */
+       GList *children;
+
        EvDocument *document;
 
        /* Find */
@@ -133,16 +120,25 @@ struct _EvView {
        gint find_result;
        gboolean jump_to_find_result;
        gboolean highlight_find_results;
-       
-       EvPageCache *page_cache;
+
+       EvDocumentModel *model;
        EvPixbufCache *pixbuf_cache;
+       gsize pixbuf_cache_size;
+       EvPageCache *page_cache;
        EvHeightToPageCache *height_to_page_cache;
        EvViewCursor cursor;
        EvJobRender *current_job;
 
+       GtkRequisition requisition;
+       gboolean       internal_size_request;
+
        /* Scrolling */
        GtkAdjustment *hadjustment;
        GtkAdjustment *vadjustment;
+       /* GtkScrollablePolicy needs to be checked when
+        * driving the scrollable adjustment values */
+       guint hscroll_policy : 1;
+       guint vscroll_policy : 1;
 
        gint scroll_x;
        gint scroll_y;  
@@ -160,23 +156,14 @@ struct _EvView {
        gint rotation;
        gdouble scale;
        gint spacing;
-       gdouble dpi;
-       gdouble max_scale;
-       gdouble min_scale;
 
        gboolean loading;
        gboolean continuous;
        gboolean dual_page;
        gboolean fullscreen;
-       gboolean presentation;
        EvSizingMode sizing_mode;
-       cairo_surface_t *loading_text;
-
-       /* Presentation */
-       EvPresentationState presentation_state;
-       EvSizingMode sizing_mode_saved;
-       double scale_saved;
-       guint  trans_timeout_id;
+       GtkWidget *loading_window;
+       guint loading_timeout;
 
        /* Common for button press handling */
        int pressed_button;
@@ -201,15 +188,18 @@ struct _EvView {
        /* Image DND */
        ImageDNDInfo image_dnd_info;
 
-       /* Goto Popup */
-       GtkWidget *goto_window;
-       GtkWidget *goto_entry;
-
-       EvTransitionAnimation *animation;
-
        /* Annotations */
        GList             *window_children;
        EvViewWindowChild *window_child_focus;
+       EvMapping         *focus_annotation;
+       gboolean           adding_annot;
+       EvAnnotationType   adding_annot_type;
+
+       /* Synctex */
+       EvMapping *synctex_result;
+
+       /* Accessibility */
+       gboolean a11y_enabled;
 };
 
 struct _EvViewClass {
@@ -218,14 +208,26 @@ struct _EvViewClass {
        void    (*binding_activated)      (EvView         *view,
                                           GtkScrollType   scroll,
                                           gboolean        horizontal);
-       void    (*zoom_invalid)           (EvView         *view);
        void    (*handle_link)            (EvView         *view,
                                           EvLink         *link);
        void    (*external_link)          (EvView         *view,
                                           EvLinkAction   *action);
        void    (*popup_menu)             (EvView         *view,
-                                          EvLink         *link);
+                                          GList          *items);
+       void    (*selection_changed)      (EvView         *view);
+       void    (*sync_source)            (EvView         *view,
+                                          EvSourceLink   *link);
+       void    (*annot_added)            (EvView         *view,
+                                          EvAnnotation   *annot);
+       void    (*layers_changed)         (EvView         *view);
 };
 
+void _get_page_size_for_scale_and_rotation (EvDocument *document,
+                                           gint        page,
+                                           gdouble     scale,
+                                           gint        rotation,
+                                           gint       *page_width,
+                                           gint       *page_height);
+
 #endif  /* __EV_VIEW_PRIVATE_H__ */