Treeview notifications
Dimitrie O. Paun
dpaun at rogers.com
Wed Oct 30 15:02:49 CST 2002
Dustin, Adrian, can you please try this one, and let me
know if it fixes your problems?
ChangeLog
Fix some treeview notification codes between ANSI/Unicode mode.
Index: dlls/comctl32/treeview.c
===================================================================
RCS file: /var/cvs/wine/dlls/comctl32/treeview.c,v
retrieving revision 1.107
diff -u -r1.107 treeview.c
--- dlls/comctl32/treeview.c 29 Oct 2002 21:25:35 -0000 1.107
+++ dlls/comctl32/treeview.c 30 Oct 2002 20:50:29 -0000
@@ -414,10 +414,21 @@
static INT get_notifycode(TREEVIEW_INFO *infoPtr, INT code)
{
- if (infoPtr->bNtfUnicode) {
- if ( code >= (TVN_FIRST + TVN_LAST) / 2) code -= (TVN_FIRST - TVN_LAST) / 2;
- } else {
- if ( code < (TVN_FIRST + TVN_LAST) / 2) code += (TVN_FIRST - TVN_LAST) / 2;
+ if (!infoPtr->bNtfUnicode) {
+ switch (code) {
+ case TVN_SELCHANGINGW: return TVN_SELCHANGINGA;
+ case TVN_SELCHANGEDW: return TVN_SELCHANGEDA;
+ case TVN_GETDISPINFOW: return TVN_GETDISPINFOA;
+ case TVN_SETDISPINFOW: return TVN_SETDISPINFOA;
+ case TVN_ITEMEXPANDINGW: return TVN_ITEMEXPANDINGA;
+ case TVN_ITEMEXPANDEDW: return TVN_ITEMEXPANDEDA;
+ case TVN_BEGINDRAGW: return TVN_BEGINDRAGA;
+ case TVN_BEGINRDRAGW: return TVN_BEGINRDRAGA;
+ case TVN_DELETEITEMW: return TVN_DELETEITEMA;
+ case TVN_BEGINLABELEDITW: return TVN_BEGINLABELEDITA;
+ case TVN_ENDLABELEDITW: return TVN_ENDLABELEDITA;
+ case TVN_GETINFOTIPW: return TVN_GETINFOTIPA;
+ }
}
return code;
}
@@ -633,7 +644,7 @@
tvdi.hdr.hwndFrom = hwnd;
tvdi.hdr.idFrom = GetWindowLongA(hwnd, GWL_ID);
- tvdi.hdr.code = get_notifycode(infoPtr, TVN_BEGINLABELEDITA);
+ tvdi.hdr.code = get_notifycode(infoPtr, TVN_BEGINLABELEDITW);
tvdi.item.mask = TVIF_HANDLE | TVIF_STATE | TVIF_PARAM | TVIF_TEXT;
tvdi.item.hItem = editItem;
@@ -677,8 +688,7 @@
callback.hdr.hwndFrom = hwnd;
callback.hdr.idFrom = GetWindowLongA(hwnd, GWL_ID);
- callback.hdr.code = (infoPtr->bNtfUnicode) ? TVN_GETDISPINFOW :
- TVN_GETDISPINFOA;
+ callback.hdr.code = get_notifycode(infoPtr, TVN_GETDISPINFOW);
/* 'state' always contains valid value, as well as 'lParam'.
* All other parameters are uninitialized.
@@ -1445,9 +1455,7 @@
{
TRACE("%p, (%s)\n", wineItem, TREEVIEW_ItemName(wineItem));
- TREEVIEW_SendTreeviewNotify(infoPtr,
- (infoPtr->bNtfUnicode) ? TVN_DELETEITEMW :
- TVN_DELETEITEMA,
+ TREEVIEW_SendTreeviewNotify(infoPtr, TVN_DELETEITEMW,
TVIF_HANDLE | TVIF_PARAM, 0, wineItem, 0);
if (wineItem->firstChild)
@@ -3059,10 +3067,7 @@
TREEVIEW_SendExpanding(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
UINT action)
{
- return !TREEVIEW_SendTreeviewNotify(infoPtr,
- (infoPtr->bNtfUnicode) ? TVN_ITEMEXPANDINGW :
- TVN_ITEMEXPANDINGA,
- action,
+ return !TREEVIEW_SendTreeviewNotify(infoPtr, TVN_ITEMEXPANDINGW, action,
TVIF_HANDLE | TVIF_STATE | TVIF_PARAM
| TVIF_IMAGE | TVIF_SELECTEDIMAGE,
0, wineItem);
@@ -3072,10 +3077,7 @@
TREEVIEW_SendExpanded(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *wineItem,
UINT action)
{
- TREEVIEW_SendTreeviewNotify(infoPtr,
- (infoPtr->bNtfUnicode) ? TVN_ITEMEXPANDEDW :
- TVN_ITEMEXPANDEDA,
- action,
+ TREEVIEW_SendTreeviewNotify(infoPtr, TVN_ITEMEXPANDEDW, action,
TVIF_HANDLE | TVIF_STATE | TVIF_PARAM
| TVIF_IMAGE | TVIF_SELECTEDIMAGE,
0, wineItem);
@@ -3638,7 +3640,7 @@
tvdi.hdr.hwndFrom = hwnd;
tvdi.hdr.idFrom = GetWindowLongA(hwnd, GWL_ID);
- tvdi.hdr.code = get_notifycode(infoPtr, TVN_ENDLABELEDITA);
+ tvdi.hdr.code = get_notifycode(infoPtr, TVN_ENDLABELEDITW);
tvdi.item.mask = 0;
tvdi.item.hItem = editedItem;
tvdi.item.state = editedItem->state;
@@ -3884,8 +3886,7 @@
{ /* if TREEVIEW_TrackMouse == 1 dragging occurred and the cursor left the dragged item's rectangle */
if (TREEVIEW_TrackMouse(infoPtr, ht.pt))
{
- TREEVIEW_SendTreeviewDnDNotify(infoPtr, TVN_BEGINDRAGA, ht.hItem,
- ht.pt);
+ TREEVIEW_SendTreeviewDnDNotify(infoPtr, TVN_BEGINDRAGW, ht.hItem, ht.pt);
infoPtr->dropItem = ht.hItem;
/* clean up focusedItem as we dragged and won't select this item */
@@ -4009,8 +4010,7 @@
{
if (ht.hItem)
{
- TREEVIEW_SendTreeviewDnDNotify(infoPtr, TVN_BEGINRDRAGA, ht.hItem,
- ht.pt);
+ TREEVIEW_SendTreeviewDnDNotify(infoPtr, TVN_BEGINRDRAGW, ht.hItem, ht.pt);
infoPtr->dropItem = ht.hItem;
}
}
@@ -4128,7 +4128,7 @@
return FALSE;
if (TREEVIEW_SendTreeviewNotify(infoPtr,
- TVN_SELCHANGINGA,
+ TVN_SELCHANGINGW,
cause,
TVIF_HANDLE | TVIF_STATE | TVIF_PARAM,
prevSelect,
@@ -4145,7 +4145,7 @@
TREEVIEW_EnsureVisible(infoPtr, infoPtr->selectedItem, FALSE);
TREEVIEW_SendTreeviewNotify(infoPtr,
- TVN_SELCHANGEDA,
+ TVN_SELCHANGEDW,
cause,
TVIF_HANDLE | TVIF_STATE | TVIF_PARAM,
prevSelect,
--
Dimi.
More information about the wine-patches
mailing list