1/* vi:set ts=8 sts=4 sw=4: 2 * 3 * VIM - Vi IMproved by Bram Moolenaar 4 * Win16 Toolbar by Vince Negri - External Header 5 * (Based on MS Sample Code) 6 * 7 * Do ":help uganda" in Vim to read copying and usage conditions. 8 * Do ":help credits" in Vim to see a list of people who contributed. 9 */ 10// 11// Button Structure 12// 13typedef struct tagTBBUTTON 14{ 15 int iBitmap; // index into bitmap of this button's picture 16 int idCommand; // WM_COMMAND menu ID that this button sends 17 BYTE fsState; // button's state 18 BYTE fsStyle; // button's style 19} TBBUTTON; 20 21typedef TBBUTTON NEAR* PTBBUTTON; 22typedef TBBUTTON FAR* LPTBBUTTON; 23typedef const TBBUTTON FAR* LPCTBBUTTON; 24 25 26// 27// Styles 28// 29#define TBSTYLE_BUTTON 0x00 // this entry is button 30#define TBSTYLE_SEP 0x01 // this entry is a separator 31#define TBSTYLE_CHECK 0x02 // this is a check button (it stays down) 32#define TBSTYLE_GROUP 0x04 // this is a check button (it stays down) 33#define TBSTYLE_CHECKGROUP (TBSTYLE_GROUP | TBSTYLE_CHECK) // this group is a member of a group radio group 34 35// 36// States 37// 38#define TBSTATE_CHECKED 0x01 // radio button is checked 39#define TBSTATE_PRESSED 0x02 // button is being depressed (any style) 40#define TBSTATE_ENABLED 0x04 // button is enabled 41#define TBSTATE_HIDDEN 0x08 // button is hidden 42#define TBSTATE_INDETERMINATE 0x10 // button is indeterminate 43#define TBSTATE_SELECTED 0x20 // mouse hovering over button (for coolbar look) 44 45 46 47typedef struct tagADJUSTINFO 48{ 49 TBBUTTON tbButton; 50 char szDescription[1]; 51} ADJUSTINFO; 52 53typedef ADJUSTINFO NEAR* PADJUSTINFO; 54typedef ADJUSTINFO FAR* LPADJUSTINFO; 55 56 57HWND WINAPI CreateToolbar(HWND hwnd, DWORD ws, WORD wID, int nBitmaps, 58 HINSTANCE hBMInst, WORD wBMID, 59 LPCTBBUTTON lpButtons, int iNumButtons); 60 61#define CMB_DISCARDABLE 0x01 // create bitmap as discardable 62#define CMB_MASKED 0x02 // create image/mask pair in bitmap 63 64 65#define TB_ENABLEBUTTON (WM_USER + 1) 66// wParam: UINT, button ID 67// lParam: BOOL LOWORD, enable if nonzero; HIWORD not used, 0 68// return: not used 69// 70 71#define TB_CHECKBUTTON (WM_USER + 2) 72// wParam: UINT, button ID 73// lParam: BOOL LOWORD, check if nonzero; HIWORD not used, 0 74// return: not used 75// 76 77#define TB_PRESSBUTTON (WM_USER + 3) 78// wParam: UINT, button ID 79// lParam: BOOL LOWORD, press if nonzero; HIWORD not used, 0 80// return: not used 81// 82 83#define TB_HIDEBUTTON (WM_USER + 4) 84// wParam: UINT, button ID 85// lParam: BOOL LOWORD, hide if nonzero; HIWORD not used, 0 86// return: not used 87// 88#define TB_INDETERMINATE (WM_USER + 5) 89// wParam: UINT, button ID 90// lParam: BOOL LOWORD, make indeterminate if nonzero; HIWORD not used, 0 91// return: not used 92// 93 94#define TB_ISBUTTONENABLED (WM_USER + 9) 95// wParam: UINT, button ID 96// lParam: not used, 0 97// return: BOOL LOWORD, enabled if nonzero; HIWORD not used 98// 99 100#define TB_ISBUTTONCHECKED (WM_USER + 10) 101// wParam: UINT, button ID 102// lParam: not used, 0 103// return: BOOL LOWORD, checked if nonzero; HIWORD not used 104// 105 106#define TB_ISBUTTONPRESSED (WM_USER + 11) 107// wParam: UINT, button ID 108// lParam: not used, 0 109// return: BOOL LOWORD, pressed if nonzero; HIWORD not used 110// 111 112#define TB_ISBUTTONHIDDEN (WM_USER + 12) 113// wParam: UINT, button ID 114// lParam: not used, 0 115// return: BOOL LOWORD, hidden if nonzero; HIWORD not used 116// 117 118#define TB_ISBUTTONINDETERMINATE (WM_USER + 13) 119// wParam: UINT, button ID 120// lParam: not used, 0 121// return: BOOL LOWORD, indeterminate if nonzero; HIWORD not used 122// 123 124#define TB_SETSTATE (WM_USER + 17) 125// wParam: UINT, button ID 126// lParam: UINT LOWORD, state bits; HIWORD not used, 0 127// return: not used 128// 129 130#define TB_GETSTATE (WM_USER + 18) 131// wParam: UINT, button ID 132// lParam: not used, 0 133// return: UINT LOWORD, state bits; HIWORD not used 134// 135 136#define TB_ADDBITMAP (WM_USER + 19) 137// wParam: UINT, number of button graphics in bitmap 138// lParam: one of: 139// HINSTANCE LOWORD, module handle; UINT HIWORD, resource id 140// HINSTANCE LOWORD, NULL; HBITMAP HIWORD, bitmap handle 141// return: one of: 142// int LOWORD, index for first new button; HIWORD not used 143// int LOWORD, -1 indicating error; HIWORD not used 144// 145 146#define TB_ADDBUTTONS (WM_USER + 20) 147// wParam: UINT, number of buttons to add 148// lParam: LPTBBUTTON, pointer to array of TBBUTTON structures 149// return: not used 150// 151 152#define TB_INSERTBUTTON (WM_USER + 21) 153// wParam: UINT, index for insertion (appended if index doesn't exist) 154// lParam: LPTBBUTTON, pointer to one TBBUTTON structure 155// return: not used 156// 157 158#define TB_DELETEBUTTON (WM_USER + 22) 159// wParam: UINT, index of button to delete 160// lParam: not used, 0 161// return: not used 162// 163 164#define TB_GETBUTTON (WM_USER + 23) 165// wParam: UINT, index of button to get 166// lParam: LPTBBUTTON, pointer to TBBUTTON buffer to receive button 167// return: not used 168// 169 170#define TB_BUTTONCOUNT (WM_USER + 24) 171// wParam: not used, 0 172// lParam: not used, 0 173// return: UINT LOWORD, number of buttons; HIWORD not used 174// 175 176#define TB_COMMANDTOINDEX (WM_USER + 25) 177// wParam: UINT, command id 178// lParam: not used, 0 179// return: UINT LOWORD, index of button (-1 if command not found); 180// HIWORD not used 181// 182 183 184#define TBN_BEGINDRAG 0x0201 185#define TBN_ENDDRAG 0x0203 186