]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-view-private.h
Added. Returns whether the animation has everything necessary to run. Do
[evince.git] / shell / ev-view-private.h
index eb7ec7269e7eeb6680fc0db1682ae39e54231425..c36cd57bd421633fb1f2c3f0fd7e1f75c78f1bde 100644 (file)
 #include "ev-pixbuf-cache.h"
 #include "ev-page-cache.h"
 #include "ev-image.h"
 #include "ev-pixbuf-cache.h"
 #include "ev-page-cache.h"
 #include "ev-image.h"
+#include "ev-form-field.h"
+#include "ev-selection.h"
+#include "ev-transition-animation.h"
+
+#define DRAG_HISTORY 10
 
 /* Information for middle clicking and moving around the doc */
 typedef struct {
 
 /* Information for middle clicking and moving around the doc */
 typedef struct {
@@ -32,14 +37,27 @@ typedef struct {
        GdkPoint start;
        gdouble hadj;
        gdouble vadj;
        GdkPoint start;
        gdouble hadj;
        gdouble vadj;
+       guint drag_timeout_id;
+       guint release_timeout_id;
+       GdkPoint buffer[DRAG_HISTORY];
+       GdkPoint momentum;
 } DragInfo;
 
 } DragInfo;
 
+/* Autoscrolling */
+typedef struct {
+       gboolean autoscrolling;
+       guint last_y;
+       guint start_y;
+       guint timeout_id;       
+} AutoScrollInfo;
+
 /* Information for handling selection */
 typedef struct {
        gboolean in_drag;
        GdkPoint start;
        gboolean in_selection;
        GList *selections;
 /* Information for handling selection */
 typedef struct {
        gboolean in_drag;
        GdkPoint start;
        gboolean in_selection;
        GList *selections;
+       EvSelectionStyle style;
 } SelectionInfo;
 
 /* Information for handling images DND */
 } SelectionInfo;
 
 /* Information for handling images DND */
@@ -62,7 +80,8 @@ typedef enum {
        EV_VIEW_CURSOR_LINK,
        EV_VIEW_CURSOR_WAIT,
        EV_VIEW_CURSOR_HIDDEN,
        EV_VIEW_CURSOR_LINK,
        EV_VIEW_CURSOR_WAIT,
        EV_VIEW_CURSOR_HIDDEN,
-       EV_VIEW_CURSOR_DRAG
+       EV_VIEW_CURSOR_DRAG,
+       EV_VIEW_CURSOR_AUTOSCROLL,
 } EvViewCursor;
 
 typedef enum {
 } EvViewCursor;
 
 typedef enum {
@@ -73,14 +92,14 @@ typedef enum {
 } EvPresentationState;
 
 struct _EvView {
 } EvPresentationState;
 
 struct _EvView {
-       GtkWidget parent_instance;
+       GtkLayout layout;
 
        EvDocument *document;
 
 
        EvDocument *document;
 
-       char *status;
        char *find_status;
        int find_result;
        gboolean jump_to_find_result;
        char *find_status;
        int find_result;
        gboolean jump_to_find_result;
+       gboolean highlight_find_results;
        
        EvPageCache *page_cache;
        EvPixbufCache *pixbuf_cache;
        
        EvPageCache *page_cache;
        EvPixbufCache *pixbuf_cache;
@@ -117,6 +136,7 @@ struct _EvView {
        gboolean fullscreen;
        gboolean presentation;
        EvSizingMode sizing_mode;
        gboolean fullscreen;
        gboolean presentation;
        EvSizingMode sizing_mode;
+       cairo_surface_t *loading_text;
 
        /* Presentation */
        EvPresentationState presentation_state;
 
        /* Presentation */
        EvPresentationState presentation_state;
@@ -129,6 +149,9 @@ struct _EvView {
 
        /* Information for middle clicking and dragging around. */
        DragInfo drag_info;
 
        /* Information for middle clicking and dragging around. */
        DragInfo drag_info;
+       
+       /* Autoscrolling */
+       AutoScrollInfo scroll_info;
 
        /* Selection */
        GdkPoint motion;
 
        /* Selection */
        GdkPoint motion;
@@ -141,25 +164,28 @@ struct _EvView {
        /* Image DND */
        ImageDNDInfo image_dnd_info;
 
        /* Image DND */
        ImageDNDInfo image_dnd_info;
 
+#if !GTK_CHECK_VERSION (2, 11, 7)
        /* Links */
        GtkWidget *link_tooltip;
        EvLink *hovered_link;
        /* Links */
        GtkWidget *link_tooltip;
        EvLink *hovered_link;
+#endif
 
        /* Goto Popup */
        GtkWidget *goto_window;
        GtkWidget *goto_entry;
 
        /* Goto Popup */
        GtkWidget *goto_window;
        GtkWidget *goto_entry;
+
+       EvTransitionAnimation *animation;
 };
 
 struct _EvViewClass {
 };
 
 struct _EvViewClass {
-       GtkWidgetClass parent_class;
+       GtkLayoutClass parent_class;
 
 
-       void    (*set_scroll_adjustments) (EvView         *view,
-                                          GtkAdjustment  *hadjustment,
-                                          GtkAdjustment  *vadjustment);
        void    (*binding_activated)      (EvView         *view,
                                           EvScrollType   scroll,
                                           gboolean        horizontal);
        void    (*zoom_invalid)           (EvView         *view);
        void    (*binding_activated)      (EvView         *view,
                                           EvScrollType   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,
        void    (*external_link)          (EvView         *view,
                                           EvLinkAction   *action);
        void    (*popup_menu)             (EvView         *view,