13e12c5d1SDavid du Colombier typedef enum Vis{ 23e12c5d1SDavid du Colombier None=0, 33e12c5d1SDavid du Colombier Some, 43e12c5d1SDavid du Colombier All, 53e12c5d1SDavid du Colombier }Vis; 63e12c5d1SDavid du Colombier 73e12c5d1SDavid du Colombier enum{ 83e12c5d1SDavid du Colombier Clicktime=1000, /* one second */ 93e12c5d1SDavid du Colombier }; 103e12c5d1SDavid du Colombier 113e12c5d1SDavid du Colombier typedef struct Flayer Flayer; 123e12c5d1SDavid du Colombier 133e12c5d1SDavid du Colombier struct Flayer 143e12c5d1SDavid du Colombier { 153e12c5d1SDavid du Colombier Frame f; 163e12c5d1SDavid du Colombier long origin; /* offset of first char in flayer */ 173e12c5d1SDavid du Colombier long p0, p1; 183e12c5d1SDavid du Colombier long click; /* time at which selection click occurred, in HZ */ 193e12c5d1SDavid du Colombier Rune *(*textfn)(Flayer*, long, ulong*); 203e12c5d1SDavid du Colombier int user0; 213e12c5d1SDavid du Colombier void *user1; 223e12c5d1SDavid du Colombier Rectangle entire; 233e12c5d1SDavid du Colombier Rectangle scroll; 24*7dd7cddfSDavid du Colombier Rectangle lastsr; /* geometry of scrollbar when last drawn */ 253e12c5d1SDavid du Colombier Vis visible; 263e12c5d1SDavid du Colombier }; 273e12c5d1SDavid du Colombier 283e12c5d1SDavid du Colombier void flborder(Flayer*, int); 293e12c5d1SDavid du Colombier void flclose(Flayer*); 303e12c5d1SDavid du Colombier void fldelete(Flayer*, long, long); 313e12c5d1SDavid du Colombier void flfp0p1(Flayer*, ulong*, ulong*); 32*7dd7cddfSDavid du Colombier void flinit(Flayer*, Rectangle, Font*, Image**); 333e12c5d1SDavid du Colombier void flinsert(Flayer*, Rune*, Rune*, long); 343e12c5d1SDavid du Colombier void flnew(Flayer*, Rune *(*fn)(Flayer*, long, ulong*), int, void*); 353e12c5d1SDavid du Colombier int flprepare(Flayer*); 363e12c5d1SDavid du Colombier Rectangle flrect(Flayer*, Rectangle); 373e12c5d1SDavid du Colombier void flrefresh(Flayer*, Rectangle, int); 38*7dd7cddfSDavid du Colombier void flresize(Rectangle); 393e12c5d1SDavid du Colombier int flselect(Flayer*); 403e12c5d1SDavid du Colombier void flsetselect(Flayer*, long, long); 413e12c5d1SDavid du Colombier void flstart(Rectangle); 423e12c5d1SDavid du Colombier void flupfront(Flayer*); 433e12c5d1SDavid du Colombier Flayer *flwhich(Point); 443e12c5d1SDavid du Colombier 453e12c5d1SDavid du Colombier #define FLMARGIN 4 463e12c5d1SDavid du Colombier #define FLSCROLLWID 12 473e12c5d1SDavid du Colombier #define FLGAP 4 48*7dd7cddfSDavid du Colombier 49*7dd7cddfSDavid du Colombier extern Image *maincols[NCOL]; 50*7dd7cddfSDavid du Colombier extern Image *cmdcols[NCOL]; 51