]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-view-private.h
Kinetic scrolling implemented as requested in bug #461271. Thanks to David
[evince.git] / shell / ev-view-private.h
index e839a31545628370bea1322acbdd2a719f3d6e8a..a2a2812541554d65c1f687ac2c47ee13213230f4 100644 (file)
 #include "ev-form-field.h"
 #include "ev-selection.h"
 
 #include "ev-form-field.h"
 #include "ev-selection.h"
 
+#define DRAG_HISTORY 10
+
 /* Information for middle clicking and moving around the doc */
 typedef struct {
         gboolean in_drag;
        GdkPoint start;
        gdouble hadj;
        gdouble vadj;
 /* Information for middle clicking and moving around the doc */
 typedef struct {
         gboolean in_drag;
        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;
 /* Information for handling selection */
 typedef struct {
        gboolean in_drag;
@@ -65,7 +79,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 {
@@ -133,6 +148,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;