#ifndef _CBUTTON_H #define _CBUTTON_H #include "bitmap.h" #define BUTTON_MAX_TITLE 256 #define BUTTON_MAX_IMGS 3 #define BUTTON_CLICK_HEIGHT 49 struct ButtonStruct { int m_iXPos; // x positie int m_iYPos; // y positie int m_iCenterWidth; // breedte van middenstuk int m_iWidth; // totale breedte int m_iHeight; // totale hoogte int m_bPressed; // pressed or not int m_bHover; // mouse hovering or not int m_iType; // button type int m_iGroup; // group id for radio buttons int m_iId; // button identifier void (*m_fpFunc)(void); // function pointer // button caption/title char m_pcTitle[BUTTON_MAX_TITLE]; // button images struct BitmapStruct m_psImgNormal[BUTTON_MAX_IMGS]; struct BitmapStruct m_psImgHover[BUTTON_MAX_IMGS]; struct BitmapStruct m_psImgPressed[BUTTON_MAX_IMGS]; }; enum ButtonType { BUTTON_CLICK, BUTTON_RADIO, BUTTON_LABEL }; enum ButtonGroup { BUTTON_NO_GROUP, BUTTON_GROUP1, BUTTON_GROUP2, BUTTON_GROUP3, BUTTON_GROUP4 }; struct ButtonStruct ButtonCreate(int f_iXPos, int f_iYPos, int f_iWidth, int f_iHeight, char *f_pcTitle, int f_iType, int f_iGroup, int f_iId, void (*f_fpFunc)(void)); void ButtonRender(struct ButtonStruct *f_sButton); void ButtonEnter(struct ButtonStruct *f_sButton); void ButtonExit(struct ButtonStruct *f_sButton); void ButtonPress(struct ButtonStruct *f_sButton); void ButtonRelease(struct ButtonStruct *f_sButton); void ButtonEnable(struct ButtonStruct *f_sButton); void ButtonDisable(struct ButtonStruct *f_sButton); void ButtonExecute(struct ButtonStruct *f_sButton); #endif