ref: 3e7b18472cba687a04f6cd9be66ad531ed24283c
dir: /src/ft2_mouse.h/
#pragma once
#include <stdint.h>
#include <stdbool.h>
enum
{
MOUSE_MODE_NORMAL = 0,
MOUSE_MODE_DELETE = 1,
MOUSE_MODE_RENAME = 2,
MOUSE_WHEEL_DOWN = 0,
MOUSE_WHEEL_UP = 1
};
typedef struct mouse_t
{
volatile bool setPosFlag;
bool leftButtonPressed, rightButtonPressed, leftButtonReleased, rightButtonReleased;
bool firstTimePressingButton, mouseOverTextBox;
int8_t buttonCounter, mode;
int16_t lastUsedObjectID, lastUsedObjectType, lastEditBox;
int32_t x, y, lastX, lastY, xBias, yBias, setPosX, setPosY;
int32_t lastScrollX, lastScrollXTmp, lastScrollY, saveMouseX, saveMouseY;
uint32_t buttonState;
} mouse_t;
extern mouse_t mouse; // ft2_mouse.c
// do not change these!
#define MOUSE_CURSOR_W 26
#define MOUSE_CURSOR_H 23
#define MOUSE_GLASS_ANI_FRAMES 22
#define MOUSE_CLOCK_ANI_FRAMES 5
void freeMouseCursors(void);
bool createMouseCursors(void);
void setMousePosToCenter(void);
void setMouseShape(int16_t shape);
void setMouseMode(uint8_t mode);
void mouseWheelHandler(bool directionUp);
void mouseButtonUpHandler(uint8_t mouseButton);
void mouseButtonDownHandler(uint8_t mouseButton);
void updateMouseScaling(void);
void setMouseBusy(bool busy); // can be called from other threads
void mouseAnimOn(void);
void mouseAnimOff(void);
void animateBusyMouse(void);
void handleLastGUIObjectDown(void);
void readMouseXY(void);
void resetMouseBusyAnimation(void);