summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/pdfapp.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/apps/pdfapp.h b/apps/pdfapp.h
new file mode 100644
index 00000000..9f03505e
--- /dev/null
+++ b/apps/pdfapp.h
@@ -0,0 +1,75 @@
+/*
+ * Utility object for handling a pdf application / view
+ * Takes care of PDF loading and displaying and navigation,
+ * uses a number of callbacks to the GUI app.
+ */
+
+typedef struct pdfapp_s pdfapp_t;
+
+enum { ARROW, HAND, WAIT };
+
+extern void winwarn(pdfapp_t*, char *s);
+extern void winerror(pdfapp_t*, fz_error *error);
+extern void wintitle(pdfapp_t*, char *title);
+extern void winresize(pdfapp_t*, int w, int h);
+extern void winconvert(pdfapp_t*, fz_pixmap *image);
+extern void winrepaint(pdfapp_t*);
+extern char* winpassword(pdfapp_t*, char *filename);
+extern void winopenuri(pdfapp_t*, char *s);
+extern void wincursor(pdfapp_t*, int curs);
+extern void windocopy(pdfapp_t*);
+
+struct pdfapp_s
+{
+ /* current document params */
+ char *filename;
+ char *doctitle;
+ pdf_xref *xref;
+ pdf_outline *outline;
+ pdf_pagetree *pages;
+ fz_renderer *rast;
+
+ /* current view params */
+ float zoom;
+ int rotate;
+ fz_pixmap *image;
+
+ /* current page params */
+ int pageno;
+ pdf_page *page;
+
+ /* snapback history */
+ int hist[256];
+ int histlen;
+
+ /* window system sizes */
+ int winw, winh;
+ int scrw, scrh;
+ int shrinkwrap;
+
+ /* event handling state */
+ char number[256];
+ int numberlen;
+
+ int ispanning;
+ int panx, pany;
+
+ int iscopying;
+ int selx, sely;
+ fz_irect selr;
+
+ /* client context storage */
+ void *userdata;
+};
+
+void pdfapp_init(pdfapp_t *app);
+void pdfapp_open(pdfapp_t *app, char *filename);
+void pdfapp_close(pdfapp_t *app);
+
+char *pdfapp_usage(pdfapp_t *app);
+
+void pdfapp_onkey(pdfapp_t *app, int c);
+void pdfapp_onmouse(pdfapp_t *app, int x, int y, int btn, int modifiers, int state);
+void pdfapp_oncopy(pdfapp_t *app, unsigned short *ucsbuf, int ucslen);
+void pdfapp_onresize(pdfapp_t *app, int w, int h);
+