Module: wine Branch: master Commit: c96900b9041d3b76abe3802da18f917b0b1055d6 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c96900b9041d3b76abe3802da1...
Author: Nikolay Sivov bunglehead@gmail.com Date: Tue Aug 4 00:42:51 2009 +0400
comctl32/listview: Enable column reordering.
---
dlls/comctl32/listview.c | 18 +++++++++--------- dlls/comctl32/tests/listview.c | 4 ++-- 2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c index 6dea474..3a0c411 100644 --- a/dlls/comctl32/listview.c +++ b/dlls/comctl32/listview.c @@ -52,7 +52,6 @@ * -- Support CustomDraw options for _WIN32_IE >= 0x560 (see NMLVCUSTOMDRAW docs). * -- LVA_SNAPTOGRID not implemented * -- LISTVIEW_ApproximateViewRect partially implemented - * -- LISTVIEW_[GS]etColumnOrderArray stubs * -- LISTVIEW_SetColumnWidth ignores header images & bitmap * -- LISTVIEW_SetIconSpacing is incomplete * -- LISTVIEW_StyleChanged doesn't handle some changes too well @@ -7556,16 +7555,16 @@ static BOOL LISTVIEW_SetColumnT(const LISTVIEW_INFO *infoPtr, INT nColumn, * SUCCESS : TRUE * FAILURE : FALSE */ -static BOOL LISTVIEW_SetColumnOrderArray(const LISTVIEW_INFO *infoPtr, INT iCount, const INT *lpiArray) +static BOOL LISTVIEW_SetColumnOrderArray(LISTVIEW_INFO *infoPtr, INT iCount, const INT *lpiArray) { - FIXME("iCount %d lpiArray %p\n", iCount, lpiArray); + TRACE("iCount %d lpiArray %p\n", iCount, lpiArray);
- if (!lpiArray) - return FALSE; + if (!lpiArray || !IsWindow(infoPtr->hwndHeader)) return FALSE;
- return TRUE; -} + infoPtr->colRectsDirty = TRUE;
+ return SendMessageW(infoPtr->hwndHeader, HDM_SETORDERARRAY, iCount, (LPARAM)lpiArray); +}
/*** * DESCRIPTION: @@ -9541,9 +9540,10 @@ static LRESULT LISTVIEW_HeaderNotification(LISTVIEW_INFO *infoPtr, const NMHEADE return (infoPtr->dwLvExStyle & LVS_EX_HEADERDRAGDROP) == 0;
case HDN_ENDDRAG: - FIXME("Changing column order not implemented\n"); + infoPtr->colRectsDirty = TRUE; + LISTVIEW_InvalidateList(infoPtr); notify_forward_header(infoPtr, lpnmh); - return TRUE; + return FALSE;
case HDN_ITEMCHANGINGW: case HDN_ITEMCHANGINGA: diff --git a/dlls/comctl32/tests/listview.c b/dlls/comctl32/tests/listview.c index 4ac14d5..72abdff 100644 --- a/dlls/comctl32/tests/listview.c +++ b/dlls/comctl32/tests/listview.c @@ -3159,7 +3159,7 @@ static void test_getitemrect(void) r = SendMessage(hwnd, LVM_GETITEMPOSITION, 0, (LPARAM)&pt); expect(TRUE, r); /* 1 indexed column width + padding */ - todo_wine expect(102, pt.x); + expect(102, pt.x); /* rect is at zero too */ rect.left = LVIR_BOUNDS; rect.right = rect.top = rect.bottom = -1; @@ -3174,7 +3174,7 @@ static void test_getitemrect(void) r = SendMessage(hwnd, LVM_GETITEMRECT, 0, (LPARAM)&rect); expect(TRUE, r); /* column width + padding */ - todo_wine expect(102, rect.left); + expect(102, rect.left);
/* back to initial order */ order[0] = 0; order[1] = 1;