X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-view-private.h;h=e839a31545628370bea1322acbdd2a719f3d6e8a;hb=1722ad86016b2980f6caba4849cbab69356e2661;hp=ef48e0be7f2ccc564e966a22dde34e213b015e84;hpb=47bf008787b6d613d0ecdc6b14c741519641c24e;p=evince.git diff --git a/shell/ev-view-private.h b/shell/ev-view-private.h index ef48e0be..e839a315 100644 --- a/shell/ev-view-private.h +++ b/shell/ev-view-private.h @@ -24,6 +24,9 @@ #include "ev-view.h" #include "ev-pixbuf-cache.h" #include "ev-page-cache.h" +#include "ev-image.h" +#include "ev-form-field.h" +#include "ev-selection.h" /* Information for middle clicking and moving around the doc */ typedef struct { @@ -39,12 +42,21 @@ typedef struct { GdkPoint start; gboolean in_selection; GList *selections; + EvSelectionStyle style; } SelectionInfo; +/* Information for handling images DND */ +typedef struct { + gboolean in_drag; + GdkPoint start; + EvImage *image; +} ImageDNDInfo; + typedef enum { SCROLL_TO_KEEP_POSITION, - SCROLL_TO_CURRENT_PAGE, - SCROLL_TO_CENTER + SCROLL_TO_PAGE_POSITION, + SCROLL_TO_CENTER, + SCROLL_TO_FIND_LOCATION, } PendingScroll; typedef enum { @@ -56,14 +68,22 @@ typedef enum { EV_VIEW_CURSOR_DRAG } EvViewCursor; +typedef enum { + EV_PRESENTATION_NORMAL, + EV_PRESENTATION_BLACK, + EV_PRESENTATION_WHITE, + EV_PRESENTATION_END +} 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; @@ -78,24 +98,35 @@ struct _EvView { gint scroll_y; PendingScroll pending_scroll; - gboolean pending_resize; + gboolean pending_resize; + EvPoint pending_point; /* Current geometry */ gint start_page; gint end_page; gint current_page; - gint find_page; - int rotation; - double scale; - int spacing; + 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; /* Common for button press handling */ int pressed_button; @@ -111,23 +142,31 @@ struct _EvView { EvViewSelectionMode selection_mode; SelectionInfo selection_info; + /* 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; + GtkWidget *goto_entry; }; struct _EvViewClass { - GtkWidgetClass parent_class; + GtkLayoutClass parent_class; - void (*set_scroll_adjustments) (EvView *view, - GtkAdjustment *hadjustment, - GtkAdjustment *vadjustment); void (*binding_activated) (EvView *view, - GtkScrollType scroll, + EvScrollType scroll, gboolean horizontal); void (*zoom_invalid) (EvView *view); - void (*external_link) (EvView *view, + void (*handle_link) (EvView *view, EvLink *link); + void (*external_link) (EvView *view, + EvLinkAction *action); void (*popup_menu) (EvView *view, EvLink *link); };