| typedef enum Vis{ |
| None=0, |
| Some, |
| All |
| }Vis; |
| |
| enum{ |
| Clicktime=1000 /* one second */ |
| }; |
| |
| typedef struct Flayer Flayer; |
| |
| struct Flayer |
| { |
| Frame f; |
| long origin; /* offset of first char in flayer */ |
| long p0, p1; |
| long click; /* time at which selection click occurred, in HZ */ |
| Rune *(*textfn)(Flayer*, long, ulong*); |
| int user0; |
| void *user1; |
| Rectangle entire; |
| Rectangle scroll; |
| Rectangle lastsr; /* geometry of scrollbar when last drawn */ |
| Vis visible; |
| }; |
| |
| void flborder(Flayer*, int); |
| void flclose(Flayer*); |
| void fldelete(Flayer*, long, long); |
| void flfp0p1(Flayer*, ulong*, ulong*, int*); |
| void flinit(Flayer*, Rectangle, Font*, Image**); |
| void flinsert(Flayer*, Rune*, Rune*, long); |
| void flnew(Flayer*, Rune *(*fn)(Flayer*, long, ulong*), int, void*); |
| int flprepare(Flayer*); |
| Rectangle flrect(Flayer*, Rectangle); |
| void flrefresh(Flayer*, Rectangle, int); |
| void flresize(Rectangle); |
| int flselect(Flayer*); |
| void flsetselect(Flayer*, long, long); |
| void flstart(Rectangle); |
| void flupfront(Flayer*); |
| Flayer *flwhich(Point); |
| int flscale(Flayer*, int); |
| |
| #define FLMARGIN(l) flscale(l, 4) |
| #define FLSCROLLWID(l) flscale(l, 12) |
| #define FLGAP(l) flscale(l, 4) |
| |
| extern Image *maincols[NCOL]; |
| extern Image *cmdcols[NCOL]; |