combo: CBS_*CASE
Huw D M Davies
h.davies1 at physics.ox.ac.uk
Tue Nov 4 16:18:19 CST 2003
Huw Davies <huw at codeweavers.com>
Add support for CBS_{LOWER|UPPER}CASE
Index: controls/combo.c
===================================================================
RCS file: /home/wine/wine/controls/combo.c,v
retrieving revision 1.101
diff -u -r1.101 combo.c
--- controls/combo.c 17 Sep 2003 04:31:27 -0000 1.101
+++ controls/combo.c 4 Nov 2003 22:15:05 -0000
@@ -33,6 +33,8 @@
#include "user.h"
#include "win.h"
#include "controls.h"
+#include "winreg.h"
+#include "winternl.h"
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(combo);
@@ -2111,15 +2113,43 @@
if( CB_HASSTRINGS(lphc) ) lParam = (LPARAM)MapSL(lParam);
/* fall through */
case CB_ADDSTRING:
- return unicode ? SendMessageW(lphc->hWndLBox, LB_ADDSTRING, 0, lParam) :
- SendMessageA(lphc->hWndLBox, LB_ADDSTRING, 0, lParam);
+ if( unicode )
+ {
+ if( lphc->dwStyle & CBS_LOWERCASE )
+ strlwrW((LPWSTR)lParam);
+ else if( lphc->dwStyle & CBS_UPPERCASE )
+ struprW((LPWSTR)lParam);
+ return SendMessageW(lphc->hWndLBox, LB_ADDSTRING, 0, lParam);
+ }
+ else
+ {
+ if( lphc->dwStyle & CBS_LOWERCASE )
+ _strlwr((LPSTR)lParam);
+ else if( lphc->dwStyle & CBS_UPPERCASE )
+ _strupr((LPSTR)lParam);
+ return SendMessageA(lphc->hWndLBox, LB_ADDSTRING, 0, lParam);
+ }
case CB_INSERTSTRING16:
wParam = (INT)(INT16)wParam;
if( CB_HASSTRINGS(lphc) ) lParam = (LPARAM)MapSL(lParam);
/* fall through */
case CB_INSERTSTRING:
- return unicode ? SendMessageW(lphc->hWndLBox, LB_INSERTSTRING, wParam, lParam) :
- SendMessageA(lphc->hWndLBox, LB_INSERTSTRING, wParam, lParam);
+ if( unicode )
+ {
+ if( lphc->dwStyle & CBS_LOWERCASE )
+ strlwrW((LPWSTR)lParam);
+ else if( lphc->dwStyle & CBS_UPPERCASE )
+ struprW((LPWSTR)lParam);
+ return SendMessageW(lphc->hWndLBox, LB_INSERTSTRING, wParam, lParam);
+ }
+ else
+ {
+ if( lphc->dwStyle & CBS_LOWERCASE )
+ _strlwr((LPSTR)lParam);
+ else if( lphc->dwStyle & CBS_UPPERCASE )
+ _strupr((LPSTR)lParam);
+ return SendMessageA(lphc->hWndLBox, LB_INSERTSTRING, wParam, lParam);
+ }
case CB_DELETESTRING16:
case CB_DELETESTRING:
return unicode ? SendMessageW(lphc->hWndLBox, LB_DELETESTRING, wParam, 0) :
More information about the wine-patches
mailing list