JD2022-TU1/main/extern/Camcam/Inc/BUTTON.h

68 lines
No EOL
1.6 KiB
C++

#ifndef ___BUTTON_H___
#define ___BUTTON_H___
#include "DEFINES.H"
typedef enum BUTTON_ACTIONS {
BUTTON_OBJ_ACTION = 0,
BUTTON_OBJ_ON_MOUSE_OVER,
BUTTON_OBJ_ON_LMOUSE_PRESS,
BUTTON_OBJ_ON_LMOUSE_UPRESS,
BUTTON_OBJ_ON_LMOUSE_PRESSED,
BUTTON_OBJ_ON_RMOUSE_PRESS,
BUTTON_OBJ_ON_RMOUSE_UPRESS,
BUTTON_OBJ_ON_RMOUSE_PRESSED,
BUTTON_OBJ_ON_LMOUSE_CLICK,
BUTTON_OBJ_ON_LMOUSE_DCLICK,
BUTTON_OBJ_ON_MOUSE_IN,
BUTTON_OBJ_ON_MOUSE_OUT,
BUTTON_OBJ_POST_ACTION,
BUTTON_OBJ_MAX_STATES,
};
class BUTTON_OBJ
{
public:
UnicID ThisID;
u8 IsVisible;
int MoveMode;
DWORD lastTime;
u8 lastMouseState;
int depth;
float fX;
float fY;
float fSX;
float fSY;
float dest_fX;
float dest_fY;
float dest_fSX;
float dest_fSY;
float fXSpeed;
float fYSpeed;
float fSXSpeed;
float fSYSpeed;
u8 ButtonName[MAX_PATH];
u8 MediaName[MAX_PATH];
char StateActions[BUTTON_OBJ_MAX_STATES][1024];
public:
BUTTON_OBJ() {memset(this, 0, sizeof(BUTTON_OBJ)); IsVisible=true;};
~BUTTON_OBJ() {};
};
BOOL MoveButton(BUTTON_OBJ *buttonPtr, float x, float y, float sx, float sy, int moveMode, float time, int speedMode);
BOOL PointInButtonRect(BUTTON_OBJ *buttonPtr, int MouseX, int MouseY, int XSize, int YSize);
int RefreshButton(BUTTON_OBJ *buttonPtr, char **actions = NULL, u8 mouseStatus = 0);
// mouseStatus 1: mouse over 2: left mouse click 4: right mouse click
int SearchMaxButtonDepth(BUTTON_OBJ *buttonList[], int nbButton);
int SetButtonDepth(int buttonIdx, int depth, BUTTON_OBJ *buttonList[], int nbButton);
int SortButtonByDepth(BUTTON_OBJ *buttonList[], int nbButton, int *buttonListPtr);
#endif //___BUTTON_H___