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