60 lines
1.5 KiB
C
60 lines
1.5 KiB
C
/*
|
|
* This file is part of the UCB release of Plan 9. It is subject to the license
|
|
* terms in the LICENSE file found in the top-level directory of this
|
|
* distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
|
|
* part of the UCB release of Plan 9, including this file, may be copied,
|
|
* modified, propagated, or distributed except according to the terms contained
|
|
* in the LICENSE file.
|
|
*/
|
|
|
|
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, uint32_t*);
|
|
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*, uint32_t*, uint32_t*);
|
|
void flinit(Flayer*, Rectangle, Font*, Image**);
|
|
void flinsert(Flayer*, Rune*, Rune*, long);
|
|
void flnew(Flayer*, Rune *(*fn)(Flayer*, long, uint32_t*), 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);
|
|
|
|
#define FLMARGIN 4
|
|
#define FLSCROLLWID 12
|
|
#define FLGAP 4
|
|
|
|
extern Image *maincols[NCOL];
|
|
extern Image *cmdcols[NCOL];
|