1 #pragma once 2 3 #include <stdint.h> 4 #include <stdbool.h> 5 6 enum 7 { 8 MOUSE_MODE_NORMAL = 0, 9 MOUSE_MODE_DELETE = 1, 10 MOUSE_MODE_RENAME = 2, 11 12 MOUSE_WHEEL_DOWN = 0, 13 MOUSE_WHEEL_UP = 1 14 }; 15 16 typedef struct mouse_t 17 { 18 volatile bool setPosFlag; 19 bool leftButtonPressed, rightButtonPressed, leftButtonReleased, rightButtonReleased; 20 bool firstTimePressingButton, mouseOverTextBox; 21 int8_t buttonCounter, mode; 22 int16_t lastUsedObjectID, lastUsedObjectType, lastEditBox; 23 int32_t x, y, lastX, lastY, xBias, yBias, setPosX, setPosY; 24 int32_t lastScrollX, lastScrollXTmp, lastScrollY, saveMouseX, saveMouseY; 25 uint32_t buttonState; 26 } mouse_t; 27 28 extern mouse_t mouse; // ft2_mouse.c 29 30 // do not change these! 31 #define MOUSE_CURSOR_W 26 32 #define MOUSE_CURSOR_H 23 33 #define MOUSE_GLASS_ANI_FRAMES 22 34 #define MOUSE_CLOCK_ANI_FRAMES 5 35 36 void freeMouseCursors(void); 37 bool createMouseCursors(void); 38 void setMousePosToCenter(void); 39 void setMouseShape(int16_t shape); 40 void setMouseMode(uint8_t mode); 41 void mouseWheelHandler(bool directionUp); 42 void mouseButtonUpHandler(uint8_t mouseButton); 43 void mouseButtonDownHandler(uint8_t mouseButton); 44 void updateMouseScaling(void); 45 void setMouseBusy(bool busy); // can be called from other threads 46 void mouseAnimOn(void); 47 void mouseAnimOff(void); 48 void animateBusyMouse(void); 49 void handleLastGUIObjectDown(void); 50 void readMouseXY(void); 51 void resetMouseBusyAnimation(void); 52