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=c3c7554b09646d2038cd11af8544a2771bc8633c;hb=0ea65770661ff5769d7539afb77dd634a78e9fd4;hp=c89444038f7f977bef73a3e7aae3086591f7998d;hpb=68d0fc3c59185065d9694ba3f8cb2665b984eb9f;p=evince.git diff --git a/libview/ev-view-private.h b/libview/ev-view-private.h index c8944403..c3c7554b 100644 --- a/libview/ev-view-private.h +++ b/libview/ev-view-private.h @@ -18,12 +18,16 @@ * 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" @@ -68,6 +72,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, @@ -92,6 +117,12 @@ typedef enum { 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 +133,11 @@ struct _EvView { gint find_result; gboolean jump_to_find_result; gboolean highlight_find_results; - + + EvDocumentModel *model; EvPageCache *page_cache; EvPixbufCache *pixbuf_cache; + EvHeightToPageCache *height_to_page_cache; EvViewCursor cursor; EvJobRender *current_job; @@ -128,9 +161,6 @@ struct _EvView { gint rotation; gdouble scale; gint spacing; - gdouble dpi; - gdouble max_scale; - gdouble min_scale; gboolean loading; gboolean continuous; @@ -174,6 +204,10 @@ struct _EvView { GtkWidget *goto_entry; EvTransitionAnimation *animation; + + /* Annotations */ + GList *window_children; + EvViewWindowChild *window_child_focus; }; struct _EvViewClass { @@ -182,7 +216,6 @@ 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, @@ -191,5 +224,12 @@ struct _EvViewClass { EvLink *link); }; +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__ */