static void TB_AddButtonsFromFlags(HHInfo *pHHInfo, TBBUTTON *pButtons, DWORD dwButtonFlags, LPDWORD pdwNumButtons) { int nHistBitmaps = 0, nStdBitmaps = 0, nHHBitmaps = 0; HWND hToolbar = pHHInfo->WinType.hwndToolBar; TBADDBITMAP tbAB; DWORD unsupported; /* Common bitmaps */ tbAB.hInst = HINST_COMMCTRL; tbAB.nID = IDB_HIST_LARGE_COLOR; nHistBitmaps = SendMessageW(hToolbar, TB_ADDBITMAP, 0, (LPARAM)&tbAB); tbAB.nID = IDB_STD_LARGE_COLOR; nStdBitmaps = SendMessageW(hToolbar, TB_ADDBITMAP, 0, (LPARAM)&tbAB); /* hhctrl.ocx bitmaps */ tbAB.hInst = hhctrl_hinstance; tbAB.nID = IDB_HHTOOLBAR; nHHBitmaps = SendMessageW(hToolbar, TB_ADDBITMAP, 0, (LPARAM)&tbAB); *pdwNumButtons = 0; unsupported = dwButtonFlags & (HHWIN_BUTTON_BROWSE_FWD | HHWIN_BUTTON_BROWSE_BCK | HHWIN_BUTTON_NOTES | HHWIN_BUTTON_CONTENTS | HHWIN_BUTTON_INDEX | HHWIN_BUTTON_SEARCH | HHWIN_BUTTON_HISTORY | HHWIN_BUTTON_FAVORITES | HHWIN_BUTTON_JUMP1 | HHWIN_BUTTON_JUMP2 | HHWIN_BUTTON_ZOOM | HHWIN_BUTTON_TOC_NEXT | HHWIN_BUTTON_TOC_PREV); if (unsupported) FIXME("got asked for unsupported buttons: %06x\n", unsupported); if (dwButtonFlags & HHWIN_BUTTON_EXPAND) { TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_EXPAND, nHistBitmaps + HIST_VIEWTREE); TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_CONTRACT, nHistBitmaps + HIST_VIEWTREE); if (pHHInfo->WinType.fNotExpanded) pButtons[1].fsState |= TBSTATE_HIDDEN; else pButtons[0].fsState |= TBSTATE_HIDDEN; } if (dwButtonFlags & HHWIN_BUTTON_BACK) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_BACK, nHistBitmaps + HIST_BACK); if (dwButtonFlags & HHWIN_BUTTON_FORWARD) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_FORWARD, nHistBitmaps + HIST_FORWARD); if (dwButtonFlags & HHWIN_BUTTON_STOP) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_STOP, nHHBitmaps + HH_STOP); if (dwButtonFlags & HHWIN_BUTTON_REFRESH) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_REFRESH, nHHBitmaps + HH_REFRESH); if (dwButtonFlags & HHWIN_BUTTON_HOME) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_HOME, nHHBitmaps + HH_HOME); /* FIXME: Load the correct button bitmaps */ if (dwButtonFlags & HHWIN_BUTTON_SYNC) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_SYNC, nStdBitmaps + STD_PRINT); if (dwButtonFlags & HHWIN_BUTTON_OPTIONS) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_OPTIONS, nStdBitmaps + STD_PRINT); if (dwButtonFlags & HHWIN_BUTTON_PRINT) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_PRINT, nStdBitmaps + STD_PRINT); }
static void TB_AddButtonsFromFlags(TBBUTTON *pButtons, DWORD dwButtonFlags, LPDWORD pdwNumButtons) { *pdwNumButtons = 0; if (dwButtonFlags & HHWIN_BUTTON_EXPAND) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_EXPAND); if (dwButtonFlags & HHWIN_BUTTON_BACK) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_BACK); if (dwButtonFlags & HHWIN_BUTTON_FORWARD) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_FORWARD); if (dwButtonFlags & HHWIN_BUTTON_STOP) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_STOP); if (dwButtonFlags & HHWIN_BUTTON_REFRESH) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_REFRESH); if (dwButtonFlags & HHWIN_BUTTON_HOME) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_HOME); if (dwButtonFlags & HHWIN_BUTTON_SYNC) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_SYNC); if (dwButtonFlags & HHWIN_BUTTON_OPTIONS) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_OPTIONS); if (dwButtonFlags & HHWIN_BUTTON_PRINT) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_PRINT); if (dwButtonFlags & HHWIN_BUTTON_JUMP1) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_JUMP1); if (dwButtonFlags & HHWIN_BUTTON_JUMP2) TB_AddButton(pButtons,(*pdwNumButtons)++, IDTB_JUMP2); if (dwButtonFlags & HHWIN_BUTTON_ZOOM) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_ZOOM); if (dwButtonFlags & HHWIN_BUTTON_TOC_NEXT) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_TOC_NEXT); if (dwButtonFlags & HHWIN_BUTTON_TOC_PREV) TB_AddButton(pButtons, (*pdwNumButtons)++, IDTB_TOC_PREV); }