gdos/examples/mouse.c

49 lines
1.0 KiB
C

/**
* Example mouse work
*
* Alexander Popov <iiiypuk@fastmail.fm>
* License: Unlicense
*/
#include <stdio.h>
#include <gdos/gdos.h>
void main() {
int mouse_status;
int mouse_x, mouse_y, mouse_click;
int mouse_x_old = -1, mouse_y_old = -1, mouse_click_old = -1;
mouse_status = gd_detect_mouse();
if (mouse_status != GD_TRUE) {
printf("Mouse support not available.\n");
abort();
}
/* example: TEXT_MODE || VGA_256_COLOR_MODE */
gd_set_mode(VGA_256_COLOR_MODE);
clrscr();
gd_show_mouse();
do {
gd_get_mouse_status(&mouse_x, &mouse_y, &mouse_click);
/* when mouse status change update */
if (mouse_x != mouse_x_old ||
mouse_y != mouse_y_old ||
mouse_click != mouse_click_old)
{
mouse_x_old = mouse_x;
mouse_y_old = mouse_y;
mouse_click_old = mouse_click;
clrscr();
gotoxy(0, 0);
printf("Mouse position: X=%d, Y=%d, CLICK=%d", mouse_x, mouse_y, mouse_click);
gd_show_mouse();
}
} while (!kbhit());
gd_hide_mouse();
getch();
gd_set_mode(TEXT_MODE);
}