Nikolay Sivov : comctl32/toolbar: Use single handler for TB_SETBUTTONINFOW/ TB_SETBUTTONINFOA pair.
Alexandre Julliard
julliard at winehq.org
Thu Nov 12 10:22:13 CST 2009
Module: wine
Branch: master
Commit: 62a7373913151e5fbf1ecbe5f571403dce5e938b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=62a7373913151e5fbf1ecbe5f571403dce5e938b
Author: Nikolay Sivov <bunglehead at gmail.com>
Date: Sun Nov 8 05:57:43 2009 +0300
comctl32/toolbar: Use single handler for TB_SETBUTTONINFOW/TB_SETBUTTONINFOA pair.
---
dlls/comctl32/toolbar.c | 64 ++++++-----------------------------------------
1 files changed, 8 insertions(+), 56 deletions(-)
diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c
index b485f04..fd30c27 100644
--- a/dlls/comctl32/toolbar.c
+++ b/dlls/comctl32/toolbar.c
@@ -4310,57 +4310,8 @@ TOOLBAR_SetBitmapSize (TOOLBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
static LRESULT
-TOOLBAR_SetButtonInfoA (TOOLBAR_INFO *infoPtr, INT Id, const TBBUTTONINFOA *lptbbi)
-{
- TBUTTON_INFO *btnPtr;
- INT nIndex;
- RECT oldBtnRect;
-
- if (lptbbi == NULL)
- return FALSE;
- if (lptbbi->cbSize < sizeof(TBBUTTONINFOA))
- return FALSE;
-
- nIndex = TOOLBAR_GetButtonIndex (infoPtr, Id, lptbbi->dwMask & TBIF_BYINDEX);
- if (nIndex == -1)
- return FALSE;
-
- btnPtr = &infoPtr->buttons[nIndex];
- if (lptbbi->dwMask & TBIF_COMMAND)
- btnPtr->idCommand = lptbbi->idCommand;
- if (lptbbi->dwMask & TBIF_IMAGE)
- btnPtr->iBitmap = lptbbi->iImage;
- if (lptbbi->dwMask & TBIF_LPARAM)
- btnPtr->dwData = lptbbi->lParam;
- if (lptbbi->dwMask & TBIF_SIZE)
- btnPtr->cx = lptbbi->cx;
- if (lptbbi->dwMask & TBIF_STATE)
- btnPtr->fsState = lptbbi->fsState;
- if (lptbbi->dwMask & TBIF_STYLE)
- btnPtr->fsStyle = lptbbi->fsStyle;
-
- if ((lptbbi->dwMask & TBIF_TEXT) && ((INT_PTR)lptbbi->pszText != -1)) {
- /* iString is index, zero it to make Str_SetPtr succeed */
- if (!TOOLBAR_ButtonHasString(btnPtr)) btnPtr->iString = 0;
-
- Str_SetPtrAtoW ((LPWSTR *)&btnPtr->iString, lptbbi->pszText);
- }
-
- /* save the button rect to see if we need to redraw the whole toolbar */
- oldBtnRect = btnPtr->rect;
- TOOLBAR_LayoutToolbar(infoPtr);
-
- if (!EqualRect(&oldBtnRect, &btnPtr->rect))
- InvalidateRect(infoPtr->hwndSelf, NULL, TRUE);
- else
- InvalidateRect(infoPtr->hwndSelf, &btnPtr->rect, TRUE);
-
- return TRUE;
-}
-
-
-static LRESULT
-TOOLBAR_SetButtonInfoW (TOOLBAR_INFO *infoPtr, INT Id, const TBBUTTONINFOW *lptbbi)
+TOOLBAR_SetButtonInfo (TOOLBAR_INFO *infoPtr, INT Id,
+ const TBBUTTONINFOW *lptbbi, BOOL isW)
{
TBUTTON_INFO *btnPtr;
INT nIndex;
@@ -4393,7 +4344,10 @@ TOOLBAR_SetButtonInfoW (TOOLBAR_INFO *infoPtr, INT Id, const TBBUTTONINFOW *lptb
/* iString is index, zero it to make Str_SetPtr succeed */
if (!TOOLBAR_ButtonHasString(btnPtr)) btnPtr->iString = 0;
- Str_SetPtrW ((LPWSTR *)&btnPtr->iString, lptbbi->pszText);
+ if (isW)
+ Str_SetPtrW ((LPWSTR *)&btnPtr->iString, lptbbi->pszText);
+ else
+ Str_SetPtrAtoW ((LPWSTR *)&btnPtr->iString, (LPSTR)lptbbi->pszText);
}
/* save the button rect to see if we need to redraw the whole toolbar */
@@ -6672,11 +6626,9 @@ ToolbarWindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return TOOLBAR_SetBitmapSize (infoPtr, wParam, lParam);
case TB_SETBUTTONINFOA:
- return TOOLBAR_SetButtonInfoA (infoPtr, wParam, (LPTBBUTTONINFOA)lParam);
-
case TB_SETBUTTONINFOW:
- return TOOLBAR_SetButtonInfoW (infoPtr, wParam, (LPTBBUTTONINFOW)lParam);
-
+ return TOOLBAR_SetButtonInfo (infoPtr, wParam, (LPTBBUTTONINFOW)lParam,
+ uMsg == TB_SETBUTTONINFOW);
case TB_SETBUTTONSIZE:
return TOOLBAR_SetButtonSize (infoPtr, lParam);
More information about the wine-cvs
mailing list