81 lines
2.6 KiB
C
81 lines
2.6 KiB
C
/* ______ ___ ___
|
|
* /\ _ \ /\_ \ /\_ \
|
|
* \ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___
|
|
* \ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\
|
|
* \ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \
|
|
* \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/
|
|
* \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/
|
|
* /\____/
|
|
* \_/__/
|
|
*
|
|
* Mouse routines.
|
|
*
|
|
* See readme.txt for copyright information.
|
|
*/
|
|
|
|
#ifndef __al_included_allegro5_mouse_h
|
|
#define __al_included_allegro5_mouse_h
|
|
|
|
#include "allegro5/base.h"
|
|
#include "allegro5/events.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Allow up to four extra axes for future expansion. */
|
|
#define ALLEGRO_MOUSE_MAX_EXTRA_AXES 4
|
|
|
|
|
|
typedef struct ALLEGRO_MOUSE ALLEGRO_MOUSE;
|
|
|
|
|
|
/* Type: ALLEGRO_MOUSE_STATE
|
|
*/
|
|
typedef struct ALLEGRO_MOUSE_STATE ALLEGRO_MOUSE_STATE;
|
|
|
|
struct ALLEGRO_MOUSE_STATE
|
|
{
|
|
/* (x, y) Primary mouse position
|
|
* (z) Mouse wheel position (1D 'wheel'), or,
|
|
* (w, z) Mouse wheel position (2D 'ball')
|
|
* display - the display the mouse is on (coordinates are relative to this)
|
|
* pressure - the pressure appleid to the mouse (for stylus/tablet)
|
|
*/
|
|
int x;
|
|
int y;
|
|
int z;
|
|
int w;
|
|
int more_axes[ALLEGRO_MOUSE_MAX_EXTRA_AXES];
|
|
int buttons;
|
|
float pressure;
|
|
struct ALLEGRO_DISPLAY *display;
|
|
};
|
|
|
|
|
|
AL_FUNC(bool, al_is_mouse_installed, (void));
|
|
AL_FUNC(bool, al_install_mouse, (void));
|
|
AL_FUNC(void, al_uninstall_mouse, (void));
|
|
AL_FUNC(unsigned int, al_get_mouse_num_buttons, (void));
|
|
AL_FUNC(unsigned int, al_get_mouse_num_axes, (void));
|
|
AL_FUNC(bool, al_set_mouse_xy, (struct ALLEGRO_DISPLAY *display, int x, int y));
|
|
AL_FUNC(bool, al_set_mouse_z, (int z));
|
|
AL_FUNC(bool, al_set_mouse_w, (int w));
|
|
AL_FUNC(bool, al_set_mouse_axis, (int axis, int value));
|
|
AL_FUNC(void, al_get_mouse_state, (ALLEGRO_MOUSE_STATE *ret_state));
|
|
AL_FUNC(bool, al_mouse_button_down, (const ALLEGRO_MOUSE_STATE *state, int button));
|
|
AL_FUNC(int, al_get_mouse_state_axis, (const ALLEGRO_MOUSE_STATE *state, int axis));
|
|
AL_FUNC(bool, al_get_mouse_cursor_position, (int *ret_x, int *ret_y));
|
|
AL_FUNC(bool, al_grab_mouse, (struct ALLEGRO_DISPLAY *display));
|
|
AL_FUNC(bool, al_ungrab_mouse, (void));
|
|
|
|
AL_FUNC(ALLEGRO_EVENT_SOURCE *, al_get_mouse_event_source, (void));
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|
|
/* vim: set sts=3 sw=3 et: */
|