Listview W3
Dimitrie O. Paun
dpaun at rogers.com
Mon Oct 21 22:01:58 CDT 2002
Make clear what remains to be done, in the header.
This way, anyone can get a good picture of the
state of things, within a few minutes.
I find this sort of summary *absolutely* fundamental
for the advancement of the code (especially for large,
and complicated components such as the listview).
I hope more people, with detailed area knowledge, will
document in other headers what they know: what's not
working, what remains to be done, ideas, etc.
ChangeLog
Collect all bugs, missing features, etc in the header doc
Minor cleanups.
--- dlls/comctl32/listview.c.W2 Mon Oct 21 22:40:05 2002
+++ dlls/comctl32/listview.c Mon Oct 21 22:57:06 2002
@@ -31,14 +31,32 @@
* If you discover missing features, or bugs, please note them below.
*
* TODO:
- * -- Hot item handling.
+ *
+ * Features
+ * -- Hot item handling, mouse hovering
+ * -- Workareas support
+ * -- Tilemode support
+ * -- Groups support
+ *
+ * Bugs
* -- Expand large item in ICON mode when the cursor is flying over the icon or text.
- * -- Support CustonDraw options for _WIN32_IE >= 0x560 (see NMLVCUSTOMDRAW docs)
- * -- work areas
- * -- tilemode
- * -- groups
- * -- FIXMEs (search for them)
+ * -- Support CustonDraw options for _WIN32_IE >= 0x560 (see NMLVCUSTOMDRAW docs.
+ * -- in LISTVIEW_AddGroupSelection, se whould send LVN_ODSTATECHANGED
* -- LVA_SNAPTOGRID not implemented
+ * -- LISTVIEW_ApproximateViewRect partially implemented
+ * -- LISTVIEW_[GS]etColumnOrderArray stubs
+ * -- LISTVIEW_GetNextItem is very inefficient
+ * -- LISTVIEW_SetColumnWidth ignores header images & bitmap
+ * -- LISTVIEW_SetIconSpacing is incomplete
+ * -- LVSICF_NOINVALIDATEALL, LVSICF_NOSCROLL not implemented
+ * -- LISTVIEW_SortItems is broken
+ * -- LISTVIEW_StyleChanged doesn't handle some changes too well
+ *
+ * Speedups
+ * -- LISTVIEW_SetItemCount is too invalidation happy
+ * -- we should keep an ordered array of coordinates in iconic mode
+ * this would allow to frame items (iterator_frameditems),
+ * and find nearest item (LVFI_NEARESTXY) a lot more efficiently
*
* States
* -- LVIS_ACTIVATING (not currently supported by comctl32.dll version 6.0)
@@ -1904,21 +1922,6 @@
/***
* DESCRIPTION:
- * Resets the current position to the origin.
- *
- * PARAMETER(S):
- * [I] infoPtr : valid pointer to the listview structure
- *
- * RETURN:
- * None
- */
-static inline void LISTVIEW_ResetCurrentPosition(LISTVIEW_INFO *infoPtr)
-{
- infoPtr->currIconPos.x = infoPtr->currIconPos.y = 0;
-}
-
-/***
- * DESCRIPTION:
* Returns the current icon position, and advances it along the top.
* The returned position is not offset by Origin.
*
@@ -2056,7 +2059,7 @@
default: return FALSE;
}
- LISTVIEW_ResetCurrentPosition(infoPtr);
+ infoPtr->currIconPos.x = infoPtr->currIconPos.y = 0;
for (i = 0; i < infoPtr->nItemCount; i++)
{
next_pos(infoPtr, &pos);
@@ -2905,7 +2908,7 @@
*
* PARAMETER(S):
* [I] infoPtr : valid pointer to the listview structure
- * [I] INT : item index
+ * [I] nItem : item index
*
* RETURN:
* SUCCESS : TRUE (needs to be repainted)
@@ -4398,7 +4401,6 @@
POINT Origin;
RECT rcArea;
- FIXME("LVFI_NEARESTXY is slow.\n");
LISTVIEW_GetOrigin(infoPtr, &Origin);
Destination.x = lpFindInfo->pt.x - Origin.x;
Destination.y = lpFindInfo->pt.y - Origin.y;
@@ -5286,9 +5288,6 @@
* [I] nItem : item index
* [I] uFlags : relationship flag
*
- * FIXME:
- * This function is very, very inefficient! Needs work.
- *
* RETURN:
* SUCCESS : item index
* FAILURE : -1
More information about the wine-patches
mailing list