ft2-clone

Fasttracker 2 clone
Log | Files | Refs | README | LICENSE

ft2_mouse.h (1423B)


      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 absX, absY, rawX, rawY, x, y, lastX, lastY, xBias, yBias, setPosX, setPosY;
     24 	uint32_t buttonState;
     25 } mouse_t;
     26 
     27 extern mouse_t mouse; // ft2_mouse.c
     28 
     29 // do not change these!
     30 #define MOUSE_CURSOR_W 26
     31 #define MOUSE_CURSOR_H 23
     32 #define MOUSE_GLASS_ANI_FRAMES 22
     33 #define MOUSE_CLOCK_ANI_FRAMES 5
     34 
     35 #if defined __APPLE__ && defined __aarch64__
     36 void armMacGhostMouseCursorFix(void);
     37 #endif
     38 
     39 void freeMouseCursors(void);
     40 bool createMouseCursors(void);
     41 void setMousePosToCenter(void);
     42 void setMouseShape(int16_t shape);
     43 void setMouseMode(uint8_t mode);
     44 void mouseWheelHandler(bool directionUp);
     45 void mouseButtonUpHandler(uint8_t mouseButton);
     46 void mouseButtonDownHandler(uint8_t mouseButton);
     47 void updateMouseScaling(void);
     48 void setMouseBusy(bool busy); // can be called from other threads
     49 void mouseAnimOn(void);
     50 void mouseAnimOff(void);
     51 void animateBusyMouse(void);
     52 void handleLastGUIObjectDown(void);
     53 void readMouseXY(void);
     54 void resetMouseBusyAnimation(void);