Mikołaj Zalewski : comctl32: rebar: Merge GetBandInfoA and GetBandInfoW.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Feb 5 07:45:00 CST 2007
Module: wine
Branch: master
Commit: 0f77096706b6e8e1f0a4cab8e4c2b534b5485f26
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0f77096706b6e8e1f0a4cab8e4c2b534b5485f26
Author: Mikołaj Zalewski <mikolaj at zalewski.pl>
Date: Mon Feb 5 00:00:08 2007 +0100
comctl32: rebar: Merge GetBandInfoA and GetBandInfoW.
---
dlls/comctl32/rebar.c | 114 +++++-------------------------------------------
1 files changed, 12 insertions(+), 102 deletions(-)
diff --git a/dlls/comctl32/rebar.c b/dlls/comctl32/rebar.c
index c3ea912..066c0d6 100644
--- a/dlls/comctl32/rebar.c
+++ b/dlls/comctl32/rebar.c
@@ -2760,9 +2760,9 @@ REBAR_GetBandCount (REBAR_INFO *infoPtr)
static LRESULT
-REBAR_GetBandInfoA (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
+REBAR_GetBandInfoT(REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam, BOOL bUnicode)
{
- LPREBARBANDINFOA lprbbi = (LPREBARBANDINFOA)lParam;
+ LPREBARBANDINFOW lprbbi = (LPREBARBANDINFOW)lParam;
REBAR_BAND *lpBand;
if (lprbbi == NULL)
@@ -2772,7 +2772,7 @@ REBAR_GetBandInfoA (REBAR_INFO *infoPtr,
if ((UINT)wParam >= infoPtr->uNumBands)
return FALSE;
- TRACE("index %u\n", (UINT)wParam);
+ TRACE("index %u (bUnicode=%d)\n", (UINT)wParam, bUnicode);
/* copy band information */
lpBand = &infoPtr->bands[(UINT)wParam];
@@ -2787,23 +2787,15 @@ REBAR_GetBandInfoA (REBAR_INFO *infoPtr,
lprbbi->clrBack = infoPtr->clrBtnFace;
}
- if ((lprbbi->fMask & RBBIM_TEXT) && (lprbbi->lpText)) {
- if (lpBand->lpText && (lpBand->fMask & RBBIM_TEXT))
- {
- if (!WideCharToMultiByte( CP_ACP, 0, lpBand->lpText, -1,
- lprbbi->lpText, lprbbi->cch, NULL, NULL ))
- lprbbi->lpText[lprbbi->cch-1] = 0;
- }
- else
- *lprbbi->lpText = 0;
+ if (lprbbi->fMask & RBBIM_TEXT) {
+ if (bUnicode)
+ Str_GetPtrW(lpBand->lpText, lprbbi->lpText, lprbbi->cch);
+ else
+ Str_GetPtrWtoA(lpBand->lpText, (LPSTR)lprbbi->lpText, lprbbi->cch);
}
- if (lprbbi->fMask & RBBIM_IMAGE) {
- if (lpBand->fMask & RBBIM_IMAGE)
+ if (lprbbi->fMask & RBBIM_IMAGE)
lprbbi->iImage = lpBand->iImage;
- else
- lprbbi->iImage = -1;
- }
if (lprbbi->fMask & RBBIM_CHILD)
lprbbi->hwndChild = lpBand->hwndChild;
@@ -2839,89 +2831,7 @@ REBAR_GetBandInfoA (REBAR_INFO *infoPtr,
lprbbi->cxHeader = lpBand->cxHeader;
}
- REBAR_DumpBandInfo (lprbbi);
-
- return TRUE;
-}
-
-
-static LRESULT
-REBAR_GetBandInfoW (REBAR_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
-{
- LPREBARBANDINFOW lprbbi = (LPREBARBANDINFOW)lParam;
- REBAR_BAND *lpBand;
-
- if (lprbbi == NULL)
- return FALSE;
- if (lprbbi->cbSize < REBARBANDINFOW_V3_SIZE)
- return FALSE;
- if ((UINT)wParam >= infoPtr->uNumBands)
- return FALSE;
-
- TRACE("index %u\n", (UINT)wParam);
-
- /* copy band information */
- lpBand = &infoPtr->bands[(UINT)wParam];
-
- if (lprbbi->fMask & RBBIM_STYLE)
- lprbbi->fStyle = lpBand->fStyle;
-
- if (lprbbi->fMask & RBBIM_COLORS) {
- lprbbi->clrFore = lpBand->clrFore;
- lprbbi->clrBack = lpBand->clrBack;
- if (lprbbi->clrBack == CLR_DEFAULT)
- lprbbi->clrBack = infoPtr->clrBtnFace;
- }
-
- if ((lprbbi->fMask & RBBIM_TEXT) && (lprbbi->lpText)) {
- if (lpBand->lpText && (lpBand->fMask & RBBIM_TEXT))
- lstrcpynW (lprbbi->lpText, lpBand->lpText, lprbbi->cch);
- else
- *lprbbi->lpText = 0;
- }
-
- if (lprbbi->fMask & RBBIM_IMAGE) {
- if (lpBand->fMask & RBBIM_IMAGE)
- lprbbi->iImage = lpBand->iImage;
- else
- lprbbi->iImage = -1;
- }
-
- if (lprbbi->fMask & RBBIM_CHILD)
- lprbbi->hwndChild = lpBand->hwndChild;
-
- if (lprbbi->fMask & RBBIM_CHILDSIZE) {
- lprbbi->cxMinChild = lpBand->cxMinChild;
- lprbbi->cyMinChild = lpBand->cyMinChild;
- if (lprbbi->cbSize >= sizeof (REBARBANDINFOW)) {
- lprbbi->cyChild = lpBand->cyChild;
- lprbbi->cyMaxChild = lpBand->cyMaxChild;
- lprbbi->cyIntegral = lpBand->cyIntegral;
- }
- }
-
- if (lprbbi->fMask & RBBIM_SIZE)
- lprbbi->cx = lpBand->cx;
-
- if (lprbbi->fMask & RBBIM_BACKGROUND)
- lprbbi->hbmBack = lpBand->hbmBack;
-
- if (lprbbi->fMask & RBBIM_ID)
- lprbbi->wID = lpBand->wID;
-
- /* check for additional data */
- if (lprbbi->cbSize >= sizeof (REBARBANDINFOW)) {
- if (lprbbi->fMask & RBBIM_IDEALSIZE)
- lprbbi->cxIdeal = lpBand->cxIdeal;
-
- if (lprbbi->fMask & RBBIM_LPARAM)
- lprbbi->lParam = lpBand->lParam;
-
- if (lprbbi->fMask & RBBIM_HEADERSIZE)
- lprbbi->cxHeader = lpBand->cxHeader;
- }
-
- REBAR_DumpBandInfo ((LPREBARBANDINFOA)lprbbi);
+ REBAR_DumpBandInfo((LPREBARBANDINFOA)lprbbi);
return TRUE;
}
@@ -4503,10 +4413,10 @@ REBAR_WindowProc (HWND hwnd, UINT uMsg,
case RB_GETBANDINFO_OLD:
case RB_GETBANDINFOA:
- return REBAR_GetBandInfoA (infoPtr, wParam, lParam);
+ return REBAR_GetBandInfoT(infoPtr, wParam, lParam, FALSE);
case RB_GETBANDINFOW:
- return REBAR_GetBandInfoW (infoPtr, wParam, lParam);
+ return REBAR_GetBandInfoT(infoPtr, wParam, lParam, TRUE);
case RB_GETBARHEIGHT:
return REBAR_GetBarHeight (infoPtr, wParam, lParam);
More information about the wine-cvs
mailing list