Module: wine Branch: master Commit: 869c3bb74b10cfc2c1d3aec173da047d4d5f4954 URL: http://source.winehq.org/git/wine.git/?a=commit;h=869c3bb74b10cfc2c1d3aec173...
Author: Mikołaj Zalewski mikolaj@zalewski.pl Date: Sun Oct 8 23:45:24 2006 +0200
comctl32: toolbar: Merge AddButtonsA and AddButtonsW into AddButtonsT.
---
dlls/comctl32/toolbar.c | 85 ++++++----------------------------------------- 1 files changed, 11 insertions(+), 74 deletions(-)
diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c index 0de7a11..2c79051 100644 --- a/dlls/comctl32/toolbar.c +++ b/dlls/comctl32/toolbar.c @@ -2858,31 +2858,19 @@ TOOLBAR_AddBitmap (HWND hwnd, WPARAM wPa
static LRESULT -TOOLBAR_AddButtonsA (HWND hwnd, WPARAM wParam, LPARAM lParam) +TOOLBAR_AddButtonsT(HWND hwnd, WPARAM wParam, LPARAM lParam, BOOL fUnicode) { TOOLBAR_INFO *infoPtr = TOOLBAR_GetInfoPtr (hwnd); LPTBBUTTON lpTbb = (LPTBBUTTON)lParam; INT nOldButtons, nNewButtons, nAddButtons, nCount;
- TRACE("adding %d buttons!\n", wParam); + TRACE("adding %d buttons (unicode=%d)!\n", wParam, fUnicode);
nAddButtons = (UINT)wParam; nOldButtons = infoPtr->nNumButtons; nNewButtons = nOldButtons + nAddButtons;
- if (infoPtr->nNumButtons == 0) { - infoPtr->buttons = - Alloc (sizeof(TBUTTON_INFO) * nNewButtons); - } - else { - TBUTTON_INFO *oldButtons = infoPtr->buttons; - infoPtr->buttons = - Alloc (sizeof(TBUTTON_INFO) * nNewButtons); - memcpy (&infoPtr->buttons[0], &oldButtons[0], - nOldButtons * sizeof(TBUTTON_INFO)); - Free (oldButtons); - } - + infoPtr->buttons = ReAlloc(infoPtr->buttons, sizeof(TBUTTON_INFO)*nNewButtons); infoPtr->nNumButtons = nNewButtons;
/* insert new button data */ @@ -2893,67 +2881,16 @@ TOOLBAR_AddButtonsA (HWND hwnd, WPARAM w btnPtr->fsState = lpTbb[nCount].fsState; btnPtr->fsStyle = lpTbb[nCount].fsStyle; btnPtr->dwData = lpTbb[nCount].dwData; - if(HIWORD(lpTbb[nCount].iString) && lpTbb[nCount].iString != -1) - Str_SetPtrAtoW ((LPWSTR*)&btnPtr->iString, (LPSTR)lpTbb[nCount].iString ); - else - btnPtr->iString = lpTbb[nCount].iString; btnPtr->bHot = FALSE; - - TOOLBAR_TooltipAddTool(infoPtr, btnPtr); - } - - TOOLBAR_CalcToolbar (hwnd); - TOOLBAR_AutoSize (hwnd); - - TOOLBAR_DumpToolbar (infoPtr, __LINE__); - - InvalidateRect(hwnd, NULL, TRUE); - - return TRUE; -} - - -static LRESULT -TOOLBAR_AddButtonsW (HWND hwnd, WPARAM wParam, LPARAM lParam) -{ - TOOLBAR_INFO *infoPtr = TOOLBAR_GetInfoPtr (hwnd); - LPTBBUTTON lpTbb = (LPTBBUTTON)lParam; - INT nOldButtons, nNewButtons, nAddButtons, nCount; - - TRACE("adding %d buttons!\n", wParam); - - nAddButtons = (UINT)wParam; - nOldButtons = infoPtr->nNumButtons; - nNewButtons = nOldButtons + nAddButtons; - - if (infoPtr->nNumButtons == 0) { - infoPtr->buttons = - Alloc (sizeof(TBUTTON_INFO) * nNewButtons); - } - else { - TBUTTON_INFO *oldButtons = infoPtr->buttons; - infoPtr->buttons = - Alloc (sizeof(TBUTTON_INFO) * nNewButtons); - memcpy (&infoPtr->buttons[0], &oldButtons[0], - nOldButtons * sizeof(TBUTTON_INFO)); - Free (oldButtons); - } - - infoPtr->nNumButtons = nNewButtons; - - /* insert new button data */ - for (nCount = 0; nCount < nAddButtons; nCount++) { - TBUTTON_INFO *btnPtr = &infoPtr->buttons[nOldButtons+nCount]; - btnPtr->iBitmap = lpTbb[nCount].iBitmap; - btnPtr->idCommand = lpTbb[nCount].idCommand; - btnPtr->fsState = lpTbb[nCount].fsState; - btnPtr->fsStyle = lpTbb[nCount].fsStyle; - btnPtr->dwData = lpTbb[nCount].dwData; if(HIWORD(lpTbb[nCount].iString) && lpTbb[nCount].iString != -1) - Str_SetPtrW ((LPWSTR*)&btnPtr->iString, (LPWSTR)lpTbb[nCount].iString ); + { + if (fUnicode) + Str_SetPtrW ((LPWSTR*)&btnPtr->iString, (LPWSTR)lpTbb[nCount].iString ); + else + Str_SetPtrAtoW((LPWSTR*)&btnPtr->iString, (LPSTR)lpTbb[nCount].iString); + } else btnPtr->iString = lpTbb[nCount].iString; - btnPtr->bHot = FALSE;
TOOLBAR_TooltipAddTool(infoPtr, btnPtr); } @@ -6783,10 +6720,10 @@ ToolbarWindowProc (HWND hwnd, UINT uMsg, return TOOLBAR_AddBitmap (hwnd, wParam, lParam);
case TB_ADDBUTTONSA: - return TOOLBAR_AddButtonsA (hwnd, wParam, lParam); + return TOOLBAR_AddButtonsT(hwnd, wParam, lParam, FALSE);
case TB_ADDBUTTONSW: - return TOOLBAR_AddButtonsW (hwnd, wParam, lParam); + return TOOLBAR_AddButtonsT(hwnd, wParam, lParam, TRUE);
case TB_ADDSTRINGA: return TOOLBAR_AddStringA (hwnd, wParam, lParam);