X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=libview%2Fev-view-private.h;h=09f6163fbcee2493c4a90d671e4a8a32103f1331;hb=f9c2880d31bb2f5d4411849b9207c5d26a5c616a;hp=c89444038f7f977bef73a3e7aae3086591f7998d;hpb=68d0fc3c59185065d9694ba3f8cb2665b984eb9f;p=evince.git diff --git a/libview/ev-view-private.h b/libview/ev-view-private.h index c8944403..09f6163f 100644 --- a/libview/ev-view-private.h +++ b/libview/ev-view-private.h @@ -18,17 +18,22 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. */ +#if !defined (EVINCE_COMPILATION) +#error "This is a private header." +#endif + #ifndef __EV_VIEW_PRIVATE_H__ #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 @@ -68,6 +73,27 @@ typedef struct { EvImage *image; } ImageDNDInfo; +/* Annotation popup windows */ +typedef struct { + GtkWidget *window; + guint page; + + /* Current position */ + gint x; + gint y; + + /* EvView root position */ + gint parent_x; + gint parent_y; + + /* Document coords */ + gdouble orig_x; + gdouble orig_y; + + gboolean visible; + gboolean moved; +} EvViewWindowChild; + typedef enum { SCROLL_TO_KEEP_POSITION, SCROLL_TO_PAGE_POSITION, @@ -75,22 +101,11 @@ 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; + gdouble *dual_height_to_page; +} EvHeightToPageCache; struct _EvView { GtkLayout layout; @@ -102,9 +117,11 @@ struct _EvView { gint find_result; gboolean jump_to_find_result; gboolean highlight_find_results; - - EvPageCache *page_cache; + + EvDocumentModel *model; EvPixbufCache *pixbuf_cache; + EvPageCache *page_cache; + EvHeightToPageCache *height_to_page_cache; EvViewCursor cursor; EvJobRender *current_job; @@ -128,24 +145,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; - /* Common for button press handling */ int pressed_button; @@ -169,11 +176,9 @@ 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; }; struct _EvViewClass { @@ -182,14 +187,21 @@ 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); + void (*selection_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__ */