43,6 → 43,13 |
#ifndef __SHARK_MOUSE26_H__ |
#define __SHARK_MOUSE26_H__ |
|
#include <kernel/const.h> |
#include <kernel/model.h> |
|
#ifdef __cplusplus |
extern "C" { |
#endif |
|
/* mouse buttons constant */ |
#define MOUSE_RBUTT 1 |
#define MOUSE_CBUTT 2 |
51,20 → 58,76 |
/* the mouse event struct */ |
typedef struct { |
int x, y, z; /* mouse position */ |
int dx, dy, dz; /* distance covered by mouse */ |
int buttons; /* buttons flags */ |
int dx, dy, dz; /* distance covered by mouse */ |
unsigned long buttons; /* buttons flags */ |
} MOUSE_EVT; |
|
/* macros to test mouse buttons */ |
#define isLeftButton(m) ((m).buttons & MOUSE_LBUTT) |
#define isRightButton(m) ((m).buttons & MOUSE_RBUTT) |
#define isCentralButton(m) ((m).buttons & MOUSE_CBUTT) |
#define isLeftButton(b) ((b) & MOUSE_LBUTT) |
#define isRightButton(b) ((b) & MOUSE_RBUTT) |
#define isCentralButton(b) ((b) & MOUSE_CBUTT) |
|
/* |
* mouse initialization |
*/ |
|
/* the MOUSE_PARMS structure used by MOUSE26_init() */ |
typedef struct mouse_parms { |
TASK_MODEL *tm; |
int xmin; |
int ymin; |
int xmax; |
int ymax; |
int threshold; |
} MOUSE_PARMS; |
|
#define MOUSE_DEFAULT (DWORD)-1 |
|
/* the default values for the MOUSE_PARMS structure */ |
#define BASE_MOUSE {(TASK_MODEL *)MOUSE_DEFAULT, \ |
(int)MOUSE_DEFAULT, \ |
(int)MOUSE_DEFAULT, \ |
(int)MOUSE_DEFAULT, \ |
(int)MOUSE_DEFAULT, \ |
(int)MOUSE_DEFAULT} |
|
/* to change the MOUSE_PARMS struct */ |
#define mouse_default_parms(s) (s).tm = (TASK_MODEL *)MOUSE_DEFAULT, \ |
(s).xmin = (int)MOUSE_DEFAULT, \ |
(s).xmin = (int)MOUSE_DEFAULT, \ |
(s).xmin = (int)MOUSE_DEFAULT, \ |
(s).xmin = (int)MOUSE_DEFAULT, \ |
(s).xmin = (int)MOUSE_DEFAULT |
|
#define mouse_def_task(s,m) (s).tm = (TASK_MODEL *)(m) |
#define mouse_def_thresh(s,v) (s).threshold = (v) |
#define mouse_def_xmin(s,v) (s).xmin = (v) |
#define mouse_def_ymin(s,v) (s).ymin = (v) |
#define mouse_def_xmax(s,v) (s).xmax = (v) |
#define mouse_def_ymax(s,v) (s).ymax = (v) |
|
/* user mouse handler */ |
typedef void (*MOUSE_HANDLER)(MOUSE_EVT*); |
|
int MOUSE26_init(void); |
int MOUSE26_close(void); |
/* |
* user mouse interface |
*/ |
int MOUSE26_init(MOUSE_PARMS *s); |
int MOUSE26_close(void); |
|
void mouse_enable(void); |
void mouse_disable(void); |
void mouse_getpos(int *x, int *y, int *z, unsigned long *buttons); |
void mouse_setpos(int x, int y, int z); |
void mouse_getlimit(int *xmin, int *ymin, int *xmax, int *ymax); |
int mouse_setlimit(int xmin, int ymin, int xmax, int ymax); |
int mouse_getthreshold(void); |
int mouse_setthreshold(int t); |
void mouse_hook(MOUSE_HANDLER h); |
|
#ifdef __cplusplus |
}; |
#endif |
|
#endif |
|