68 lines
No EOL
1.6 KiB
C++
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___
|