1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#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
|