#ifndef _BUTTONSBAR_H #define _BUTTONSBAR_H #define MIN_CBUTTONID 4000 #define MAX_CBUTTONID 5000 #define BBSF_IMBUTTON (1<<0) #define BBSF_CHATBUTTON (1<<1) #define BBSF_CANBEHIDDEN (1<<2) #define BBSF_NTBSWAPED (1<<3) #define BBSF_NTBDESTRUCT (1<<4) typedef struct _tagCustomButtonData { DWORD dwButtonOrigID; // id of button used while button creation and to store button info in DB char * pszModuleName; //module name without spaces and underline symbols (e.g. "tabsrmm") DWORD dwButtonCID; DWORD dwArrowCID; //only use with BBBF_ISARROWBUTTON flag TCHAR * ptszTooltip; //button's tooltip DWORD dwPosition; // default order pos of button, counted from window edge (left or right) int iButtonWidth; //must be 22 for regular button and 33 for button with arrow HANDLE hIcon; //Handle to icolib registred icon BOOL bIMButton,bChatButton; BOOL bCanBeHidden,bHidden,bAutoHidden,bDummy,bDisabled,bPushButton; BOOL bLSided,bRSided; BYTE opFlags; }CustomButtonData; static INT_PTR CB_ModifyButton(WPARAM wParam, LPARAM lParam); static INT_PTR CB_RemoveButton(WPARAM wParam, LPARAM lParam); static INT_PTR CB_AddButton(WPARAM wParam, LPARAM lParam); static INT_PTR CB_GetButtonState(WPARAM wParam, LPARAM lParam); static INT_PTR CB_SetButtonState(WPARAM wParam, LPARAM lParam); static void CB_GetButtonSettings(HANDLE hContact,CustomButtonData *cbd); void CB_WriteButtonSettings(HANDLE hContact,CustomButtonData *cbd); int sstSortButtons(const void * vmtbi1, const void * vmtbi2); void CB_DeInitCustomButtons(); void CB_InitCustomButtons(); void CB_InitDefaultButtons(); void CB_ReInitCustomButtons(); /* MinGW doesn't like this struct declatations below */ void BB_UpdateIcons(HWND hdlg,struct TWindowData *dat); void BB_RefreshTheme(const TWindowData *dat); void CB_DestroyAllButtons(HWND hwndDlg,struct TWindowData *dat); void CB_DestroyButton(HWND hwndDlg,struct TWindowData *dat,DWORD dwButtonCID,DWORD dwFlags); void CB_ChangeButton(HWND hwndDlg,struct TWindowData *dat,CustomButtonData* cbd); #endif