xref: /plan9/sys/src/cmd/page/page.h (revision ad6ca847b1a6a504acb0003cd6c5c6d92687369b)
17dd7cddfSDavid du Colombier typedef struct Document Document;
27dd7cddfSDavid du Colombier 
37dd7cddfSDavid du Colombier struct Document {
47dd7cddfSDavid du Colombier 	char *docname;
57dd7cddfSDavid du Colombier 	int npage;
67dd7cddfSDavid du Colombier 	int fwdonly;
77dd7cddfSDavid du Colombier 	char* (*pagename)(Document*, int);
87dd7cddfSDavid du Colombier 	Image* (*drawpage)(Document*, int);
97dd7cddfSDavid du Colombier 	int	(*addpage)(Document*, char*);
107dd7cddfSDavid du Colombier 	int	(*rmpage)(Document*, int);
117dd7cddfSDavid du Colombier 	Biobuf *b;
127dd7cddfSDavid du Colombier 	void *extra;
137dd7cddfSDavid du Colombier };
147dd7cddfSDavid du Colombier 
157dd7cddfSDavid du Colombier void *emalloc(int);
167dd7cddfSDavid du Colombier void *erealloc(void*, int);
177dd7cddfSDavid du Colombier char *estrdup(char*);
187dd7cddfSDavid du Colombier int spawncmd(char*, char **, int, int, int);
197dd7cddfSDavid du Colombier 
207dd7cddfSDavid du Colombier int spooltodisk(uchar*, int, char**);
217dd7cddfSDavid du Colombier int stdinpipe(uchar*, int);
227dd7cddfSDavid du Colombier Document *initps(Biobuf*, int, char**, uchar*, int);
237dd7cddfSDavid du Colombier Document *initpdf(Biobuf*, int, char**, uchar*, int);
247dd7cddfSDavid du Colombier Document *initgfx(Biobuf*, int, char**, uchar*, int);
257dd7cddfSDavid du Colombier Document *inittroff(Biobuf*, int, char**, uchar*, int);
267dd7cddfSDavid du Colombier Document *initdvi(Biobuf*, int, char**, uchar*, int);
27f5736e95SDavid du Colombier Document *initmsdoc(Biobuf*, int, char**, uchar*, int);
28*ad6ca847SDavid du Colombier void setlabel(char *);
297dd7cddfSDavid du Colombier 
307dd7cddfSDavid du Colombier void viewer(Document*);
317dd7cddfSDavid du Colombier extern Cursor reading;
327dd7cddfSDavid du Colombier extern int chatty;
337dd7cddfSDavid du Colombier extern int goodps;
347dd7cddfSDavid du Colombier extern int textbits, gfxbits;
357dd7cddfSDavid du Colombier extern int reverse;
367dd7cddfSDavid du Colombier extern int clean;
377dd7cddfSDavid du Colombier extern int ppi;
387dd7cddfSDavid du Colombier extern int teegs;
397dd7cddfSDavid du Colombier extern int truetoboundingbox;
407dd7cddfSDavid du Colombier extern int wctlfd;
417dd7cddfSDavid du Colombier extern int resizing;
42d9306527SDavid du Colombier extern int mknewwindow;
437dd7cddfSDavid du Colombier 
447dd7cddfSDavid du Colombier void rot180(Image*);
4508fd2d13SDavid du Colombier Image *rot90(Image*);
46a7529a1dSDavid du Colombier Image *rot270(Image*);
4708fd2d13SDavid du Colombier Image *resample(Image*, Image*);
487dd7cddfSDavid du Colombier 
497dd7cddfSDavid du Colombier /* ghostscript interface shared by ps, pdf */
507dd7cddfSDavid du Colombier typedef struct GSInfo	GSInfo;
517dd7cddfSDavid du Colombier struct GSInfo {
527dd7cddfSDavid du Colombier 	int gsfd;
537dd7cddfSDavid du Colombier 	Biobuf gsrd;
547dd7cddfSDavid du Colombier 	int gspid;
557dd7cddfSDavid du Colombier 	int gsdfd;
567dd7cddfSDavid du Colombier 	int ppi;
577dd7cddfSDavid du Colombier };
587dd7cddfSDavid du Colombier void	waitgs(GSInfo*);
597dd7cddfSDavid du Colombier int	gscmd(GSInfo*, char*, ...);
60593dc095SDavid du Colombier int	spawngs(GSInfo*, char*);
61d9306527SDavid du Colombier void	setdim(GSInfo*, Rectangle, int, int);
627dd7cddfSDavid du Colombier int	spawnwriter(GSInfo*, Biobuf*);
637dd7cddfSDavid du Colombier Rectangle	screenrect(void);
647dd7cddfSDavid du Colombier void	newwin(void);
657def40e1SDavid du Colombier void	zerox(void);
667dd7cddfSDavid du Colombier Rectangle winrect(void);
677dd7cddfSDavid du Colombier void	resize(int, int);
687dd7cddfSDavid du Colombier int	max(int, int);
697dd7cddfSDavid du Colombier int	min(int, int);
707dd7cddfSDavid du Colombier void	wexits(char*);
717dd7cddfSDavid du Colombier Image*	xallocimage(Display*, Rectangle, ulong, int, ulong);
727dd7cddfSDavid du Colombier int	bell(void*, char*);
737dd7cddfSDavid du Colombier int	opentemp(char *template);
74493edcedSDavid du Colombier Image*	cachedpage(Document*, int, int);
75493edcedSDavid du Colombier void	cacheflush(void);
767dd7cddfSDavid du Colombier 
777dd7cddfSDavid du Colombier extern int stdinfd;
787dd7cddfSDavid du Colombier extern int truecolor;
7934e04225SDavid du Colombier 
8034e04225SDavid du Colombier /* BUG BUG BUG BUG BUG: cannot use new draw operations in drawterm,
8134e04225SDavid du Colombier  * or in vncs, and there is a bug in the kernel for copying images
8234e04225SDavid du Colombier  * from cpu memory -> video memory (memmove is not being used).
8334e04225SDavid du Colombier  * until all that is settled, ignore the draw operators.
8434e04225SDavid du Colombier  */
8534e04225SDavid du Colombier #define drawop(a,b,c,d,e,f) draw(a,b,c,d,e)
8634e04225SDavid du Colombier #define gendrawop(a,b,c,d,e,f,g) gendraw(a,b,c,d,e,f)
87