#ifndef ARC_GRAPHICS_MOUSE_H_ #define ARC_GRAPHICS_MOUSE_H_ #ifdef __cplusplus extern "C" { #endif #include "arc/math/point.h" typedef struct ARC_Mouse ARC_Mouse; typedef struct ARC_MouseInfo ARC_MouseInfo; typedef enum ARC_MouseState { ARC_MOUSE_NONE, ARC_MOUSE_PRESSED, ARC_MOUSE_RELEASED } ARC_MouseState; typedef enum ARC_MouseButton { ARC_MOUSE_LEFT = 0, ARC_MOUSE_MIDDLE = 1, ARC_MOUSE_RIGHT = 2, ARC_MOUSE_X1 = 3, ARC_MOUSE_X2 = 4 } ARC_MouseButton; #define ARC_MOUSE_BUTTON_NUM 5 void ARC_Mouse_Create(ARC_Mouse **mouse, ARC_MouseInfo *info); void ARC_Mouse_Destroy(ARC_Mouse *mouse); void ARC_Mouse_Update(ARC_Mouse *mouse); ARC_Point *ARC_Mouse_GetCoords(ARC_Mouse *mouse); ARC_MouseState ARC_Mouse_GetState(ARC_Mouse *mouse, ARC_MouseButton button); #ifdef __cplusplus } #endif #endif // !ARC_GRAPHICS_MOUSE_H_