xref: /plan9/sys/src/cmd/page/page.h (revision ad6ca847b1a6a504acb0003cd6c5c6d92687369b)
1 typedef struct Document Document;
2 
3 struct Document {
4 	char *docname;
5 	int npage;
6 	int fwdonly;
7 	char* (*pagename)(Document*, int);
8 	Image* (*drawpage)(Document*, int);
9 	int	(*addpage)(Document*, char*);
10 	int	(*rmpage)(Document*, int);
11 	Biobuf *b;
12 	void *extra;
13 };
14 
15 void *emalloc(int);
16 void *erealloc(void*, int);
17 char *estrdup(char*);
18 int spawncmd(char*, char **, int, int, int);
19 
20 int spooltodisk(uchar*, int, char**);
21 int stdinpipe(uchar*, int);
22 Document *initps(Biobuf*, int, char**, uchar*, int);
23 Document *initpdf(Biobuf*, int, char**, uchar*, int);
24 Document *initgfx(Biobuf*, int, char**, uchar*, int);
25 Document *inittroff(Biobuf*, int, char**, uchar*, int);
26 Document *initdvi(Biobuf*, int, char**, uchar*, int);
27 Document *initmsdoc(Biobuf*, int, char**, uchar*, int);
28 void setlabel(char *);
29 
30 void viewer(Document*);
31 extern Cursor reading;
32 extern int chatty;
33 extern int goodps;
34 extern int textbits, gfxbits;
35 extern int reverse;
36 extern int clean;
37 extern int ppi;
38 extern int teegs;
39 extern int truetoboundingbox;
40 extern int wctlfd;
41 extern int resizing;
42 extern int mknewwindow;
43 
44 void rot180(Image*);
45 Image *rot90(Image*);
46 Image *rot270(Image*);
47 Image *resample(Image*, Image*);
48 
49 /* ghostscript interface shared by ps, pdf */
50 typedef struct GSInfo	GSInfo;
51 struct GSInfo {
52 	int gsfd;
53 	Biobuf gsrd;
54 	int gspid;
55 	int gsdfd;
56 	int ppi;
57 };
58 void	waitgs(GSInfo*);
59 int	gscmd(GSInfo*, char*, ...);
60 int	spawngs(GSInfo*, char*);
61 void	setdim(GSInfo*, Rectangle, int, int);
62 int	spawnwriter(GSInfo*, Biobuf*);
63 Rectangle	screenrect(void);
64 void	newwin(void);
65 void	zerox(void);
66 Rectangle winrect(void);
67 void	resize(int, int);
68 int	max(int, int);
69 int	min(int, int);
70 void	wexits(char*);
71 Image*	xallocimage(Display*, Rectangle, ulong, int, ulong);
72 int	bell(void*, char*);
73 int	opentemp(char *template);
74 Image*	cachedpage(Document*, int, int);
75 void	cacheflush(void);
76 
77 extern int stdinfd;
78 extern int truecolor;
79 
80 /* BUG BUG BUG BUG BUG: cannot use new draw operations in drawterm,
81  * or in vncs, and there is a bug in the kernel for copying images
82  * from cpu memory -> video memory (memmove is not being used).
83  * until all that is settled, ignore the draw operators.
84  */
85 #define drawop(a,b,c,d,e,f) draw(a,b,c,d,e)
86 #define gendrawop(a,b,c,d,e,f,g) gendraw(a,b,c,d,e,f)
87