xref: /plan9/sys/src/cmd/samterm/flayer.h (revision 7dd7cddf99dd7472612f1413b4da293630e6b1bc)
1 typedef enum Vis{
2 	None=0,
3 	Some,
4 	All,
5 }Vis;
6 
7 enum{
8 	Clicktime=1000,		/* one second */
9 };
10 
11 typedef struct Flayer Flayer;
12 
13 struct Flayer
14 {
15 	Frame		f;
16 	long		origin;	/* offset of first char in flayer */
17 	long		p0, p1;
18 	long		click;	/* time at which selection click occurred, in HZ */
19 	Rune		*(*textfn)(Flayer*, long, ulong*);
20 	int		user0;
21 	void		*user1;
22 	Rectangle	entire;
23 	Rectangle	scroll;
24 	Rectangle	lastsr;	/* geometry of scrollbar when last drawn */
25 	Vis		visible;
26 };
27 
28 void	flborder(Flayer*, int);
29 void	flclose(Flayer*);
30 void	fldelete(Flayer*, long, long);
31 void	flfp0p1(Flayer*, ulong*, ulong*);
32 void	flinit(Flayer*, Rectangle, Font*, Image**);
33 void	flinsert(Flayer*, Rune*, Rune*, long);
34 void	flnew(Flayer*, Rune *(*fn)(Flayer*, long, ulong*), int, void*);
35 int	flprepare(Flayer*);
36 Rectangle flrect(Flayer*, Rectangle);
37 void	flrefresh(Flayer*, Rectangle, int);
38 void	flresize(Rectangle);
39 int	flselect(Flayer*);
40 void	flsetselect(Flayer*, long, long);
41 void	flstart(Rectangle);
42 void	flupfront(Flayer*);
43 Flayer	*flwhich(Point);
44 
45 #define	FLMARGIN	4
46 #define	FLSCROLLWID	12
47 #define	FLGAP		4
48 
49 extern	Image	*maincols[NCOL];
50 extern	Image	*cmdcols[NCOL];
51