60 lines
1.1 KiB
C
60 lines
1.1 KiB
C
|
typedef struct Mouseinfo Mouseinfo;
|
||
|
typedef struct Mousestate Mousestate;
|
||
|
typedef struct Cursorinfo Cursorinfo;
|
||
|
typedef struct Screeninfo Screeninfo;
|
||
|
|
||
|
#define Mousequeue 16 /* queue can only have Mousequeue-1 elements */
|
||
|
#define Mousewindow 500 /* mouse event window in millisec */
|
||
|
|
||
|
struct Mousestate {
|
||
|
int buttons;
|
||
|
Point xy;
|
||
|
ulong msec;
|
||
|
};
|
||
|
|
||
|
struct Mouseinfo {
|
||
|
Lock lk;
|
||
|
Mousestate queue[Mousequeue];
|
||
|
int ri, wi;
|
||
|
int lastb;
|
||
|
int trans;
|
||
|
int open;
|
||
|
Rendez r;
|
||
|
};
|
||
|
|
||
|
struct Cursorinfo {
|
||
|
Lock lk;
|
||
|
Point offset;
|
||
|
uchar clr[2*16];
|
||
|
uchar set[2*16];
|
||
|
};
|
||
|
|
||
|
struct Screeninfo {
|
||
|
Lock lk;
|
||
|
Memimage *newsoft;
|
||
|
int reshaped;
|
||
|
int depth;
|
||
|
int dibtype;
|
||
|
};
|
||
|
|
||
|
extern Memimage *gscreen;
|
||
|
extern Mouseinfo mouse;
|
||
|
extern Cursorinfo cursor;
|
||
|
extern Screeninfo screen;
|
||
|
|
||
|
void screeninit(void);
|
||
|
void screenload(Rectangle, int, uchar *, Point, int);
|
||
|
|
||
|
void getcolor(ulong, ulong*, ulong*, ulong*);
|
||
|
void setcolor(ulong, ulong, ulong, ulong);
|
||
|
|
||
|
void refreshrect(Rectangle);
|
||
|
|
||
|
void cursorarrow(void);
|
||
|
void setcursor(void);
|
||
|
void mouseset(Point);
|
||
|
void drawflushr(Rectangle);
|
||
|
void flushmemscreen(Rectangle);
|
||
|
uchar *attachscreen(Rectangle*, ulong*, int*, int*, int*, void**);
|
||
|
|