#include "ev-pixbuf-cache.h"
#include "ev-page-cache.h"
#include "ev-image.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 {
GdkPoint start;
gdouble hadj;
gdouble vadj;
+ guint drag_timeout_id;
+ guint release_timeout_id;
+ GdkPoint buffer[DRAG_HISTORY];
+ GdkPoint momentum;
} 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;
+ EvSelectionStyle style;
} SelectionInfo;
/* Information for handling images DND */
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 {
} EvPresentationState;
struct _EvView {
- GtkWidget parent_instance;
+ GtkLayout layout;
EvDocument *document;
- char *status;
char *find_status;
int find_result;
gboolean jump_to_find_result;
+ gboolean highlight_find_results;
EvPageCache *page_cache;
EvPixbufCache *pixbuf_cache;
/* Information for middle clicking and dragging around. */
DragInfo drag_info;
+
+ /* Autoscrolling */
+ AutoScrollInfo scroll_info;
/* Selection */
GdkPoint motion;
/* Image DND */
ImageDNDInfo image_dnd_info;
+#if !GTK_CHECK_VERSION (2, 11, 7)
/* Links */
GtkWidget *link_tooltip;
EvLink *hovered_link;
+#endif
/* Goto Popup */
GtkWidget *goto_window;
};
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);