typedef struct Client Client;
typedef struct CScreen CScreen;
typedef struct Cursorinfo Cursorinfo;
typedef struct DImage DImage;
typedef struct DName DName;
typedef struct Draw Draw;
typedef struct DScreen DScreen;
typedef struct FChar FChar;
typedef struct Kmouse Kmouse;
typedef struct Mouseinfo Mouseinfo;
typedef struct Refresh Refresh;
typedef struct Refx Refx;
typedef struct Window Window;
struct Cursorinfo
{
Cursor c;
Lock lk;
};
struct Kmouse
{
int buttons; /* bit array: LMR=124 */
Point xy;
ulong msec;
ulong counter;
};
struct Mouseinfo
{
Kmouse m;
ulong lastcounter;
Rendez r;
Lock lk;
Ref ref;
QLock qlk;
int open;
int queue[16];
int ri;
int wi;
int qfull;
int mresize; /* number of resizes read from devmouse */
int nresize; /* number of resizes */
};
struct Window
{
Ref ref;
int id;
char name[40];
char *wdir;
int nresize;
/* devcons state */
/* devmouse state */
int mouseshifted;
Mouseinfo mouse;
Cursorinfo cursor;
/* devdraw state */
Rectangle flushrect;
Memimage* image;
int waste;
int softscreen;
};
extern void addwindow(Window*);
extern void deletewindow(Window*);
extern void flushmemscreen(Window*, Rectangle);
extern void mousetrack(Window*, Mouse);
extern void mouseresize(Window*);
extern Point mousexy(Window*);
extern void movecursor(Window*, Point);
extern void resizewindow(Window*);
extern void setcolor(ulong, ulong, ulong, ulong);
syntax highlighted by Code2HTML, v. 0.9.1