xref: /plan9/acme/news/src/win.h (revision 80ee5cbfe36716af62da8896207e9763b8e3d760)
1 /* acme */
2 typedef struct Event Event;
3 typedef struct Window Window;
4 
5 enum
6 {
7 	STACK		= 8192,
8 	EVENTSIZE	= 256,
9 	NEVENT		= 5,
10 };
11 
12 struct Event
13 {
14 	int	c1;
15 	int	c2;
16 	int	q0;
17 	int	q1;
18 	int	flag;
19 	int	nb;
20 	int	nr;
21 	char	b[EVENTSIZE*UTFmax+1];
22 	Rune	r[EVENTSIZE+1];
23 };
24 
25 struct Window
26 {
27 	/* file descriptors */
28 	int		ctl;
29 	int		event;
30 	int		addr;
31 	int		data;
32 	Biobuf	*body;
33 
34 	/* event input */
35 	char		buf[512];
36 	char		*bufp;
37 	int		nbuf;
38 	Event	e[NEVENT];
39 
40 	int		dirtied;
41 	int		id;
42 	int		open;
43 	Channel	*cevent;	/* chan(Event*) */
44 };
45 
46 extern	Window*	newwindow(void);
47 extern	int		winopenfile(Window*, char*);
48 extern	void		winopenbody(Window*, int);
49 extern	void		winclosebody(Window*);
50 extern	void		wintagwrite(Window*, char*, int);
51 extern	void		winname(Window*, char*);
52 extern	void		winwriteevent(Window*, Event*);
53 extern	void		winread(Window*, uint, uint, char*);
54 extern	int		windel(Window*, int);
55 extern	void		wingetevent(Window*, Event*);
56 extern	void		wineventproc(void*);
57 extern	void		winwritebody(Window*, char*, int);
58 extern	void		winclean(Window*);
59 extern	int		winselect(Window*, char*, int);
60 extern	int		winsetaddr(Window*, char*, int);
61 extern	char*	winreadbody(Window*, int*);
62 extern	void		windormant(Window*);
63 extern	void		winsetdump(Window*, char*, char*);
64 
65 extern	char*	readfile(char*, char*, int*);
66 extern	void		ctlprint(int, char*, ...);
67 extern	void*	emalloc(uint);
68 extern	char*	estrdup(char*);
69 extern	char*	estrstrdup(char*, char*);
70 extern	char*	estrstrstrdup(char*, char*, char*);
71 extern	char*	egrow(char*, char*, char*);
72 extern	char*	eappend(char*, char*, char*);
73 extern	void		error(char*, ...);
74 extern	int		tokenizec(char*, char**, int, char*);
75 
76