Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
62f4c61d
Commit
62f4c61d
authored
Oct 21, 2002
by
Dimitrie O. Paun
Committed by
Alexandre Julliard
Oct 21, 2002
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updated header documentation to the latest, and greatest.
parent
06701fb0
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
121 additions
and
49 deletions
+121
-49
listview.c
dlls/comctl32/listview.c
+121
-49
No files found.
dlls/comctl32/listview.c
View file @
62f4c61d
...
...
@@ -22,29 +22,94 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* NOTES
* Listview control implementation.
*
* This code was audited for completeness against the documented features
* of Comctl32.dll version 6.0 on Oct. 21, 2002, by Dimitrie O. Paun.
*
* Unless otherwise noted, we belive this code to be complete, as per
* the specification mentioned above.
* If you discover missing features, or bugs, please note them below.
*
* TODO:
* -- Hot item handling.
* -- 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)
*
* States
* -- LVIS_ACTIVATING (not currently supported my comctl32.dll version 6.0)
* -- LVIS_CUT
* -- LVIS_DROPHILITED
* -- LVIS_OVERLAYMASK
*
* Styles
* -- LVS_NOLABELWRAP
* -- LVS_NOSCROLL (see Q137520)
* -- LVS_SORTASCENDING, LVS_SORTDESCENDING
*
* Extended Styles
* -- LVS_EX_BORDERSELECT
* -- LVS_EX_CHECKBOXES
* -- LVS_EX_FLATSB
* -- LVS_EX_GRIDLINES
* -- LVS_EX_HEADERDRAGDROP
* -- LVS_EX_INFOTIP
* -- LVS_EX_LABELTIP
* -- LVS_EX_MULTIWORKAREAS
* -- LVS_EX_ONECLICKACTIVATE
* -- LVS_EX_REGIONAL
* -- LVS_EX_SIMPLESELECT
* -- LVS_EX_SUBITEMIMAGES
* -- LVS_EX_TRACKSELECT
* -- LVS_EX_TWOCLICKACTIVATE
* -- LVS_EX_UNDERLINECOLD
* -- LVS_EX_UNDERLINEHOT
*
* Notifications:
* LISTVIEW_Notify : most notifications from editbox
*
* Data structure:
* LISTVIEW_SetItemCount : not completed for non OWNERDATA
*
* Advanced functionality:
* LISTVIEW_GetNumberOfWorkAreas : not implemented
* LISTVIEW_GetISearchString : not implemented
* LISTVIEW_GetBkImage : not implemented
* LISTVIEW_SetBkImage : not implemented
* LISTVIEW_GetColumnOrderArray : simple hack only
* LISTVIEW_SetColumnOrderArray : simple hack only
* LISTVIEW_Arrange : empty stub
* LISTVIEW_ApproximateViewRect : incomplete
* LISTVIEW_Update : not completed
* -- LVN_BEGINDRAG, LVN_BEGINRDRAG
* -- LVN_BEGINSCROLL, LVN_ENDSCROLL
* -- LVN_GETINFOTIP
* -- LVN_HOTTRACK
* -- LVN_MARQUEEBEGIN
* -- LVN_ODFINDITEM
* -- LVN_ODSTATECHANGED
* -- LVN_SETDISPINFO
* -- NM_HOVER
*
* Messages:
* -- LVM_CANCELEDITLABEL
* -- LVM_CREATEDRAGIMAGE
* -- LVM_ENABLEGROUPVIEW
* -- LVM_GETBKIMAGE, LVM_SETBKIMAGE
* -- LVM_GETGROUPINFO, LVM_SETGROUPINFO
* -- LVM_GETGROUPMETRICS, LVM_SETGROUPMETRICS
* -- LVM_GETINSERTMARK, LVM_SETINSERTMARK
* -- LVM_GETINSERTMARKCOLOR, LVM_SETINSERTMARKCOLOR
* -- LVM_GETINSERTMARKRECT
* -- LVM_GETNUMBEROFWORKAREAS
* -- LVM_GETOUTLINECOLOR, LVM_SETOUTLINECOLOR
* -- LVM_GETSELECTEDCOLUMN, LVM_SETSELECTEDCOLUMN
* -- LVM_GETISEARCHSTRINGW, LVM_GETISEARCHSTRINGA
* -- LVM_GETTILEINFO, LVM_SETTILEINFO
* -- LVM_GETTILEVIEWINFO, LVM_SETTILEVIEWINFO
* -- LVM_GETTOOLTIPS, LVM_SETTOOLTIPS
* -- LVM_GETUNICODEFORMAT, LVM_SETUNICODEFORMAT
* -- LVM_GETVIEW, LVM_SETVIEW
* -- LVM_GETWORKAREAS, LVM_SETWORKAREAS
* -- LVM_HASGROUP, LVM_INSERTGROUP, LVM_REMOVEGROUP, LVM_REMOVEALLGROUPS
* -- LVM_INSERTGROUPSORTED
* -- LVM_INSERTMARKHITTEST
* -- LVM_ISGROUPVIEWENABLED
* -- LVM_MAPIDTOINDEX, LVM_MAPINDEXTOID
* -- LVM_MOVEGROUP
* -- LVM_MOVEITEMTOGROUP
* -- LVM_SETINFOTIP
* -- LVM_SETTILEWIDTH
* -- LVM_SORTGROUPS
* -- LVM_SORTITEMSEX
*
* Known differences in message stream from native control (not known if
* these differences cause problems):
...
...
@@ -54,7 +119,6 @@
* processing for "USEDOUBLECLICKTIME".
*/
#include "config.h"
#include "wine/port.h"
...
...
@@ -8129,7 +8193,7 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
case
LVM_ARRANGE
:
return
LISTVIEW_Arrange
(
infoPtr
,
(
INT
)
wParam
);
/* case LV
N_CANCELEDITLABEL
*/
/* case LV
M_CANCELEDITLABEL:
*/
/* case LVM_CREATEDRAGIMAGE: */
...
...
@@ -8148,7 +8212,7 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
case
LVM_EDITLABELA
:
return
(
LRESULT
)
LISTVIEW_EditLabelT
(
infoPtr
,
(
INT
)
wParam
,
FALSE
);
/* case LV
N
_ENABLEGROUPVIEW: */
/* case LV
M
_ENABLEGROUPVIEW: */
case
LVM_ENSUREVISIBLE
:
return
LISTVIEW_EnsureVisible
(
infoPtr
,
(
INT
)
wParam
,
(
BOOL
)
lParam
);
...
...
@@ -8188,6 +8252,10 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
case
LVM_GETEXTENDEDLISTVIEWSTYLE
:
return
infoPtr
->
dwLvExStyle
;
/* case LVM_GETGROUPINFO: */
/* case LVM_GETGROUPMETRICS: */
case
LVM_GETHEADER
:
return
(
LRESULT
)
infoPtr
->
hwndHeader
;
...
...
@@ -8203,11 +8271,11 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
case
LVM_GETIMAGELIST
:
return
(
LRESULT
)
LISTVIEW_GetImageList
(
infoPtr
,
(
INT
)
wParam
);
/* case LV
N
_GETINSERTMARK: */
/* case LV
M
_GETINSERTMARK: */
/* case LV
N
_GETINSERTMARKCOLOR: */
/* case LV
M
_GETINSERTMARKCOLOR: */
/* case LV
N
_GETINSERTMARKRECT: */
/* case LV
M
_GETINSERTMARKRECT: */
case
LVM_GETISEARCHSTRINGA
:
case
LVM_GETISEARCHSTRINGW
:
...
...
@@ -8253,7 +8321,7 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
LISTVIEW_GetOrigin
(
infoPtr
,
(
LPPOINT
)
lParam
);
return
TRUE
;
/* case LV
N
_GETOUTLINECOLOR: */
/* case LV
M
_GETOUTLINECOLOR: */
/* case LVM_GETSELECTEDCOLUMN: */
...
...
@@ -8278,9 +8346,9 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
case
LVM_GETTEXTCOLOR
:
return
infoPtr
->
clrText
;
/* case LV
N
_GETTILEINFO: */
/* case LV
M
_GETTILEINFO: */
/* case LV
N
_GETTILEVIEWINFO: */
/* case LV
M
_GETTILEVIEWINFO: */
case
LVM_GETTOOLTIPS
:
FIXME
(
"LVM_GETTOOLTIPS: unimplemented
\n
"
);
...
...
@@ -8293,6 +8361,8 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
FIXME("LVM_GETUNICODEFORMAT: unimplemented\n");
return FALSE;*/
/* case LVM_GETVIEW: */
case
LVM_GETVIEWRECT
:
return
LISTVIEW_GetViewRect
(
infoPtr
,
(
LPRECT
)
lParam
);
...
...
@@ -8300,7 +8370,7 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
FIXME
(
"LVM_GETWORKAREAS: unimplemented
\n
"
);
return
FALSE
;
/* case LV
N
_HASGROUP: */
/* case LV
M
_HASGROUP: */
case
LVM_HITTEST
:
return
LISTVIEW_HitTest
(
infoPtr
,
(
LPLVHITTESTINFO
)
lParam
,
FALSE
,
FALSE
);
...
...
@@ -8311,9 +8381,9 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
case
LVM_INSERTCOLUMNW
:
return
LISTVIEW_InsertColumnT
(
infoPtr
,
(
INT
)
wParam
,
(
LPLVCOLUMNW
)
lParam
,
TRUE
);
/* case LV
N
_INSERTGROUP: */
/* case LV
M
_INSERTGROUP: */
/* case LV
N
_INSERTGROUPSORTED: */
/* case LV
M
_INSERTGROUPSORTED: */
case
LVM_INSERTITEMA
:
return
LISTVIEW_InsertItemT
(
infoPtr
,
(
LPLVITEMW
)
lParam
,
FALSE
);
...
...
@@ -8321,24 +8391,24 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
case
LVM_INSERTITEMW
:
return
LISTVIEW_InsertItemT
(
infoPtr
,
(
LPLVITEMW
)
lParam
,
TRUE
);
/* case LV
N
_INSERTMARKHITTEST: */
/* case LV
M
_INSERTMARKHITTEST: */
/* case LV
N
_ISGROUPVIEWENABLED: */
/* case LV
M
_ISGROUPVIEWENABLED: */
/* case LV
N
_MAPIDTOINDEX: */
/* case LV
M
_MAPIDTOINDEX: */
/* case LV
N_INED
XTOID: */
/* case LV
M_MAPINDE
XTOID: */
/* case LV
N
_MOVEGROUP: */
/* case LV
M
_MOVEGROUP: */
/* case LV
N
_MOVEITEMTOGROUP: */
/* case LV
M
_MOVEITEMTOGROUP: */
case
LVM_REDRAWITEMS
:
return
LISTVIEW_RedrawItems
(
infoPtr
,
(
INT
)
wParam
,
(
INT
)
lParam
);
/* case LV
N
_REMOVEALLGROUPS: */
/* case LV
M
_REMOVEALLGROUPS: */
/* case LV
N
_REMOVEGROUP: */
/* case LV
M
_REMOVEGROUP: */
case
LVM_SCROLL
:
return
LISTVIEW_Scroll
(
infoPtr
,
(
INT
)
wParam
,
(
INT
)
lParam
);
...
...
@@ -8367,9 +8437,9 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
case
LVM_SETEXTENDEDLISTVIEWSTYLE
:
return
LISTVIEW_SetExtendedListViewStyle
(
infoPtr
,
(
DWORD
)
wParam
,
(
DWORD
)
lParam
);
/* case LV
N
_SETGROUPINFO: */
/* case LV
M
_SETGROUPINFO: */
/* case LV
N
_SETGROUPMETRICS: */
/* case LV
M
_SETGROUPMETRICS: */
case
LVM_SETHOTCURSOR
:
return
(
LRESULT
)
LISTVIEW_SetHotCursor
(
infoPtr
,
(
HCURSOR
)
lParam
);
...
...
@@ -8386,11 +8456,11 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
case
LVM_SETIMAGELIST
:
return
(
LRESULT
)
LISTVIEW_SetImageList
(
infoPtr
,
(
INT
)
wParam
,
(
HIMAGELIST
)
lParam
);
/* case LV
N
_SETINFOTIP: */
/* case LV
M
_SETINFOTIP: */
/* case LV
N
_SETINSERTMARK: */
/* case LV
M
_SETINSERTMARK: */
/* case LV
N
_SETINSERTMARKCOLOR: */
/* case LV
M
_SETINSERTMARKCOLOR: */
case
LVM_SETITEMA
:
return
LISTVIEW_SetItemT
(
infoPtr
,
(
LPLVITEMW
)
lParam
,
FALSE
);
...
...
@@ -8420,9 +8490,9 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
case
LVM_SETITEMTEXTW
:
return
LISTVIEW_SetItemTextT
(
infoPtr
,
(
INT
)
wParam
,
(
LPLVITEMW
)
lParam
,
TRUE
);
/* case LV
N
_SETOUTLINECOLOR: */
/* case LV
M
_SETOUTLINECOLOR: */
/* case LV
N
_SETSELECTEDCOLUMN: */
/* case LV
M
_SETSELECTEDCOLUMN: */
case
LVM_SETSELECTIONMARK
:
return
LISTVIEW_SetSelectionMark
(
infoPtr
,
(
INT
)
lParam
);
...
...
@@ -8433,25 +8503,27 @@ LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
case
LVM_SETTEXTCOLOR
:
return
LISTVIEW_SetTextColor
(
infoPtr
,
(
COLORREF
)
lParam
);
/* case LV
N
_SETTILEINFO: */
/* case LV
M
_SETTILEINFO: */
/* case LV
N
_SETTILEVIEWINFO: */
/* case LV
M
_SETTILEVIEWINFO: */
/* case LV
N
_SETTILEWIDTH: */
/* case LV
M
_SETTILEWIDTH: */
/* case LVM_SETTOOLTIPS: */
/* case LVM_SETUNICODEFORMAT: */
/* case LV
N
_SETVIEW: */
/* case LV
M
_SETVIEW: */
/* case LVM_SETWORKAREAS: */
/* case LV
N
_SORTGROUPS: */
/* case LV
M
_SORTGROUPS: */
case
LVM_SORTITEMS
:
return
LISTVIEW_SortItems
(
infoPtr
,
(
PFNLVCOMPARE
)
lParam
,
(
LPARAM
)
wParam
);
/* LVM_SORTITEMSEX: */
case
LVM_SUBITEMHITTEST
:
return
LISTVIEW_HitTest
(
infoPtr
,
(
LPLVHITTESTINFO
)
lParam
,
TRUE
,
FALSE
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment