]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/samterm/flayer.h
merge
[plan9front.git] / sys / src / cmd / samterm / flayer.h
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];