#define LEFT_BUTTON  0
#define RIGHT_BUTTON 1
#define BUTTON_DOWN  0
#define BUTTON_UP    1
#define MAX_ITEM 10

extern unsigned char MouseBuffer[100];
extern unsigned char BarBuffer[17][640];
extern unsigned char *MenuBuffer[160];
extern int MouseMove;
struct menu_item
{
	char *item,ret,status;
};
struct menu
{
	char *bar,bar_return,status;
	int num_entry;
	struct menu_item menu[MAX_ITEM];
};
int mouse_initialize(int sensitivity);
void  mouse_information(int *right,int *left,int *row,int *col);
void  mouse_move_cursor(int row,int col);
void  mouse_times_pressed(int mouse_button,int *num_times,int *row,int *col);
void  mouse_times_released(int mouse_button,int *num_times,int *row,int *col);
void  mouse_horizontal_range(int left,int right);
void  mouse_vertical_range(int top,int bottom);

void  mouse_get_button(int *right,int *left);
int   mouse_get_point(int *right,int *left,int *row,int *col,int button_up);
char tmouse_menu(struct menu *m,int back_color,int off_color,int on_color,
		int ret_inactive,
		int ret_left,int ret_right,int ret_top,int ret_bottom,
		int ret_row,int ret_col,int *start_row,int *start_col,
		int ret_mousemove,int cursor,int button_up);
char  mouse_menu(struct menu *m,int back_color,int off_color,int on_color,
		int ret_inactive,
		int ret_left,int ret_right,int ret_top,int ret_bottom,
		int ret_row,int ret_col,int *start_row,int *start_col,
		int ret_mousemove,int cursor,int button_up);
                                                             