2 |
- |
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)
|