Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
f9b58070
Commit
f9b58070
authored
Jul 31, 1999
by
Eric Kohl
Committed by
Alexandre Julliard
Jul 31, 1999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Some more messages.
parent
e2ab4d03
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
245 additions
and
34 deletions
+245
-34
listview.c
dlls/comctl32/listview.c
+210
-22
treeview.c
dlls/comctl32/treeview.c
+33
-12
listview.h
include/listview.h
+1
-0
treeview.h
include/treeview.h
+1
-0
No files found.
dlls/comctl32/listview.c
View file @
f9b58070
/*
* Listview control
*
* Copyright 1998 Eric Kohl
* Copyright 1998
, 1999
Eric Kohl
* Copyright 1999 Luc Tourangeau
*
* NOTES
...
...
@@ -10,6 +10,7 @@
* TODO:
* 1. No horizontal scrolling when header is larger than the client area.
* 2. Drawing optimizations.
* 3. Hot item handling.
*
* Notifications:
* LISTVIEW_Notify : most notifications from children (editbox and header)
...
...
@@ -18,20 +19,21 @@
* LISTVIEW_SetItemCount : empty stub
*
* Unicode:
* LISTVIEW_SetItem
32
W : no unicode support
* LISTVIEW_InsertItem
32
W : no unicode support
* LISTVIEW_InsertColumn
32
W : no unicode support
* LISTVIEW_SetItemW : no unicode support
* LISTVIEW_InsertItemW : no unicode support
* LISTVIEW_InsertColumnW : no unicode support
* LISTVIEW_GetColumnW : no unicode support
* LISTVIEW_SetColumnW : no unicode support
*
* Advanced functionality:
* LISTVIEW_GetNumberOfWorkAreas : not implemented
* LISTVIEW_GetHotCursor : not implemented
* LISTVIEW_GetHotItem : not implemented
* LISTVIEW_GetHoverTime : not implemented
* LISTVIEW_GetISearchString : not implemented
* LISTVIEW_GetBkImage : not implemented
* LISTVIEW_EditLabel : REPORT (need to implement a timer)
* LISTVIEW_GetColumnOrderArray : not implemented
* LISTVIEW_SetColumnOrderArray : not implemented
* LISTVIEW_Arrange : empty stub
* LISTVIEW_ApproximateViewRect : incomplete
* LISTVIEW_Scroll : not implemented
...
...
@@ -3161,7 +3163,28 @@ static LRESULT LISTVIEW_GetCountPerPage(HWND hwnd)
}
/* LISTVIEW_GetEditControl */
/* LISTVIEW_GetExtendedListViewStyle */
/***
* DESCRIPTION:
* Retrieves the extended listview style.
*
* PARAMETERS:
* [I] HWND : window handle
*
* RETURN:
* SUCCESS : previous style
* FAILURE : 0
*/
static
LRESULT
LISTVIEW_GetExtendedListViewStyle
(
HWND
hwnd
)
{
LISTVIEW_INFO
*
infoPtr
;
/* make sure we can get the listview info */
if
(
!
(
infoPtr
=
(
LISTVIEW_INFO
*
)
GetWindowLongA
(
hwnd
,
0
)))
return
(
0
);
return
(
infoPtr
->
dwExStyle
);
}
/***
* DESCRIPTION:
...
...
@@ -3416,8 +3439,30 @@ static LRESULT LISTVIEW_GetItemA(HWND hwnd, LPLVITEMA lpLVItem)
/* LISTVIEW_GetItemW */
/* LISTVIEW_GetHotCursor */
/* LISTVIEW_GetHotItem */
/* LISTVIEW_GetHoverTime> */
/***
* DESCRIPTION:
* Retrieves the index of the hot item.
*
* PARAMETERS:
* [I] HWND : window handle
*
* RETURN:
* SUCCESS : hot item index
* FAILURE : -1 (no hot item)
*/
static
LRESULT
LISTVIEW_GetHotItem
(
HWND
hwnd
)
{
LISTVIEW_INFO
*
infoPtr
;
/* make sure we can get the listview info */
if
(
!
(
infoPtr
=
(
LISTVIEW_INFO
*
)
GetWindowLongA
(
hwnd
,
0
)))
return
(
-
1
);
return
(
infoPtr
->
nHotItem
);
}
/* LISTVIEW_GetHoverTime */
/***
* DESCRIPTION:
...
...
@@ -4632,6 +4677,8 @@ static LRESULT LISTVIEW_SetBkColor(HWND hwnd, COLORREF clrBk)
return
TRUE
;
}
/* LISTVIEW_SetBkImage */
/***
* DESCRIPTION:
* Sets the callback mask. This mask will be used when the parent
...
...
@@ -4762,6 +4809,9 @@ static LRESULT LISTVIEW_SetColumnA(HWND hwnd, INT nColumn,
return
bResult
;
}
/* LISTVIEW_SetColumnW */
/* LISTVIEW_SetColumnOrderArray */
/***
* DESCRIPTION:
* Sets the width of a column
...
...
@@ -4814,6 +4864,71 @@ static LRESULT LISTVIEW_SetColumnWidth(HWND hwnd, INT iCol, INT cx)
/***
* DESCRIPTION:
* Sets the extended listview style.
*
* PARAMETERS:
* [I] HWND : window handle
* [I] DWORD : mask
* [I] DWORD : style
*
* RETURN:
* SUCCESS : previous style
* FAILURE : 0
*/
static
LRESULT
LISTVIEW_SetExtendedListViewStyle
(
HWND
hwnd
,
DWORD
dwMask
,
DWORD
dwStyle
)
{
LISTVIEW_INFO
*
infoPtr
;
DWORD
dwOldStyle
;
/* make sure we can get the listview info */
if
(
!
(
infoPtr
=
(
LISTVIEW_INFO
*
)
GetWindowLongA
(
hwnd
,
0
)))
return
(
0
);
/* store previous style */
dwOldStyle
=
infoPtr
->
dwExStyle
;
/* set new style */
infoPtr
->
dwExStyle
=
(
dwOldStyle
&
~
dwMask
)
|
(
dwStyle
&
dwMask
);
return
(
dwOldStyle
);
}
/* LISTVIEW_SetHotCursor */
/***
* DESCRIPTION:
* Sets the hot item index.
*
* PARAMETERS:
* [I] HWND : window handle
* [I] INT : index
*
* RETURN:
* SUCCESS : previous hot item index
* FAILURE : -1 (no hot item)
*/
static
LRESULT
LISTVIEW_SetHotItem
(
HWND
hwnd
,
INT
iIndex
)
{
LISTVIEW_INFO
*
infoPtr
;
INT
iOldIndex
;
/* make sure we can get the listview info */
if
(
!
(
infoPtr
=
(
LISTVIEW_INFO
*
)
GetWindowLongA
(
hwnd
,
0
)))
return
(
-
1
);
/* store previous index */
iOldIndex
=
infoPtr
->
nHotItem
;
/* set new style */
infoPtr
->
nHotItem
=
iIndex
;
return
(
iOldIndex
);
}
/* LISTVIEW_SetIconSpacing */
/***
* DESCRIPTION:
* Sets image lists.
*
* PARAMETER(S):
...
...
@@ -4898,13 +5013,35 @@ static LRESULT LISTVIEW_SetItemA(HWND hwnd, LPLVITEMA lpLVItem)
* PARAMETER(S):
* [I] HWND : window handle
* [I] INT : item count (prjected number of items)
* [I] DWORD : update flags
*
* RETURN:
* None
* SUCCESS : TRUE
* FAILURE : FALSE
*/
static
VOID
LISTVIEW_SetItemCount
(
HWND
hwnd
,
INT
nItemCount
)
static
BOOL
LISTVIEW_SetItemCount
(
HWND
hwnd
,
INT
nItems
,
DWORD
dwFlags
)
{
LISTVIEW_INFO
*
infoPtr
=
(
LISTVIEW_INFO
*
)
GetWindowLongA
(
hwnd
,
0
);
FIXME
(
"(%d %08lx)empty stub!
\n
"
,
nItems
,
dwFlags
);
if
(
nItems
==
0
)
return
LISTVIEW_DeleteAllItems
(
hwnd
);
if
(
nItems
>
GETITEMCOUNT
(
infoPtr
))
{
FIXME
(
"empty stub!
\n
"
);
/* append items */
FIXME
(
"append items
\n
"
);
}
else
if
(
nItems
<
GETITEMCOUNT
(
infoPtr
))
{
/* remove items */
FIXME
(
"remove items
\n
"
);
}
return
TRUE
;
}
/***
...
...
@@ -4953,6 +5090,8 @@ static BOOL LISTVIEW_SetItemPosition(HWND hwnd, INT nItem,
return
bResult
;
}
/* LISTVIEW_SetItemPosition32 */
/***
* DESCRIPTION:
* Sets the state of one or many items.
...
...
@@ -5036,6 +5175,29 @@ static BOOL LISTVIEW_SetItemTextA(HWND hwnd, INT nItem, LPLVITEMA lpLVItem)
return
bResult
;
}
/* LISTVIEW_SetItemTextW */
/***
* DESCRIPTION:
* Set item index that marks the start of a multiple selection.
*
* PARAMETER(S):
* [I] HWND : window handle
* [I] INT : index
*
* RETURN:
* Index number or -1 if there is no selection mark.
*/
static
LRESULT
LISTVIEW_SetSelectionMark
(
HWND
hwnd
,
INT
nIndex
)
{
LISTVIEW_INFO
*
infoPtr
=
(
LISTVIEW_INFO
*
)
GetWindowLongA
(
hwnd
,
0
);
INT
nOldIndex
=
infoPtr
->
nSelectionMark
;
infoPtr
->
nSelectionMark
=
nIndex
;
return
nOldIndex
;
}
/***
* DESCRIPTION:
* Sets the text background color.
...
...
@@ -5080,6 +5242,9 @@ static LRESULT LISTVIEW_SetTextColor (HWND hwnd, COLORREF clrText)
return
TRUE
;
}
/* LISTVIEW_SetToolTips */
/* LISTVIEW_SetUnicodeFormat */
/* LISTVIEW_SetWorkAreas */
/***
* DESCRIPTION:
...
...
@@ -5168,6 +5333,8 @@ static LRESULT LISTVIEW_SortItems(HWND hwnd, WPARAM wParam, LPARAM lParam)
return
TRUE
;
}
/* LISTVIEW_SubItemHitTest */
/***
* DESCRIPTION:
* Updates an items or rearranges the listview control.
...
...
@@ -5246,6 +5413,7 @@ static LRESULT LISTVIEW_Create(HWND hwnd, WPARAM wParam, LPARAM lParam)
infoPtr
->
uCallbackMask
=
0
;
infoPtr
->
nFocusedItem
=
-
1
;
infoPtr
->
nSelectionMark
=
-
1
;
infoPtr
->
nHotItem
=
-
1
;
infoPtr
->
iconSpacing
.
cx
=
GetSystemMetrics
(
SM_CXICONSPACING
);
infoPtr
->
iconSpacing
.
cy
=
GetSystemMetrics
(
SM_CYICONSPACING
);
ZeroMemory
(
&
infoPtr
->
rcList
,
sizeof
(
RECT
));
...
...
@@ -6480,7 +6648,10 @@ LRESULT WINAPI LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,
return
LISTVIEW_GetColumnA
(
hwnd
,
(
INT
)
wParam
,
(
LPLVCOLUMNA
)
lParam
);
/* case LVM_GETCOLUMNW: */
/* case LVM_GETCOLUMNORDERARRAY: */
case
LVM_GETCOLUMNORDERARRAY
:
FIXME
(
"Unimplemented msg LVM_GETCOLUMNORDERARRAY
\n
"
);
return
0
;
case
LVM_GETCOLUMNWIDTH
:
return
LISTVIEW_GetColumnWidth
(
hwnd
,
(
INT
)
wParam
);
...
...
@@ -6489,13 +6660,18 @@ LRESULT WINAPI LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,
return
LISTVIEW_GetCountPerPage
(
hwnd
);
/* case LVM_GETEDITCONTROL: */
/* case LVM_GETEXTENDEDLISTVIEWSTYLE: */
case
LVM_GETEXTENDEDLISTVIEWSTYLE
:
return
LISTVIEW_GetExtendedListViewStyle
(
hwnd
);
case
LVM_GETHEADER
:
return
LISTVIEW_GetHeader
(
hwnd
);
/* case LVM_GETHOTCURSOR: */
/* case LVM_GETHOTITEM: */
case
LVM_GETHOTITEM
:
return
LISTVIEW_GetHotItem
(
hwnd
);
/* case LVM_GETHOVERTIME: */
case
LVM_GETIMAGELIST
:
...
...
@@ -6598,15 +6774,25 @@ LRESULT WINAPI LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,
case
LVM_SETCOLUMNA
:
return
LISTVIEW_SetColumnA
(
hwnd
,
(
INT
)
wParam
,
(
LPLVCOLUMNA
)
lParam
);
/* case LVM_SETCOLUMNW: */
/* case LVM_SETCOLUMNORDERARRAY: */
case
LVM_SETCOLUMNW
:
FIXME
(
"Unimplemented msg LVM_SETCOLUMNW
\n
"
);
return
0
;
case
LVM_SETCOLUMNORDERARRAY
:
FIXME
(
"Unimplemented msg LVM_SETCOLUMNORDERARRAY
\n
"
);
return
0
;
case
LVM_SETCOLUMNWIDTH
:
return
LISTVIEW_SetColumnWidth
(
hwnd
,
(
INT
)
wParam
,
(
INT
)
lParam
);
/* case LVM_SETEXTENDEDLISTVIEWSTYLE: */
case
LVM_SETEXTENDEDLISTVIEWSTYLE
:
return
LISTVIEW_SetExtendedListViewStyle
(
hwnd
,
(
DWORD
)
wParam
,
(
DWORD
)
lParam
);
/* case LVM_SETHOTCURSOR: */
/* case LVM_SETHOTITEM: */
case
LVM_SETHOTITEM
:
return
LISTVIEW_SetHotItem
(
hwnd
,
(
INT
)
wParam
);
/* case LVM_SETHOVERTIME: */
/* case LVM_SETICONSPACING: */
...
...
@@ -6619,14 +6805,13 @@ LRESULT WINAPI LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,
/* case LVM_SETITEMW: */
case
LVM_SETITEMCOUNT
:
LISTVIEW_SetItemCount
(
hwnd
,
(
INT
)
wParam
);
break
;
return
LISTVIEW_SetItemCount
(
hwnd
,
(
INT
)
wParam
,
(
DWORD
)
lParam
);
case
LVM_SETITEMPOSITION
:
return
LISTVIEW_SetItemPosition
(
hwnd
,
(
INT
)
wParam
,
(
INT
)
LOWORD
(
lParam
),
(
INT
)
HIWORD
(
lParam
));
/* case LVM_SETITEMPOSITION: */
/* case LVM_SETITEMPOSITION
32
: */
case
LVM_SETITEMSTATE
:
return
LISTVIEW_SetItemState
(
hwnd
,
(
INT
)
wParam
,
(
LPLVITEMA
)
lParam
);
...
...
@@ -6634,7 +6819,10 @@ LRESULT WINAPI LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,
case
LVM_SETITEMTEXTA
:
return
LISTVIEW_SetItemTextA
(
hwnd
,
(
INT
)
wParam
,
(
LPLVITEMA
)
lParam
);
/* case LVM_SETSELECTIONMARK: */
/* case LVM_SETITEMTEXTW: */
case
LVM_SETSELECTIONMARK
:
return
LISTVIEW_SetSelectionMark
(
hwnd
,
(
INT
)
lParam
);
case
LVM_SETTEXTBKCOLOR
:
return
LISTVIEW_SetTextBkColor
(
hwnd
,
(
COLORREF
)
lParam
);
...
...
dlls/comctl32/treeview.c
View file @
f9b58070
...
...
@@ -1461,7 +1461,8 @@ LRESULT WINAPI TREEVIEW_Sort (
/* undocumented feature: TVI_ROOT means `sort the whole tree' */
if
(
parent
==
TVI_ROOT
)
parent
=
infoPtr
->
TopRootItem
;
if
(
parent
==
TVI_ROOT
)
parent
=
infoPtr
->
TopRootItem
;
/* Check for a valid handle to the parent item */
if
(
!
TREEVIEW_ValidItem
(
infoPtr
,
parent
))
...
...
@@ -1870,6 +1871,8 @@ TREEVIEW_InsertItemA (HWND hwnd, WPARAM wParam, LPARAM lParam)
return
(
LRESULT
)
iItem
;
}
static
LRESULT
TREEVIEW_InsertItemW
(
HWND
hwnd
,
WPARAM
wParam
,
LPARAM
lParam
)
{
...
...
@@ -1921,8 +1924,6 @@ TREEVIEW_InsertItemW(HWND hwnd, WPARAM wParam, LPARAM lParam)
}
static
LRESULT
TREEVIEW_DeleteItem
(
HWND
hwnd
,
WPARAM
wParam
,
LPARAM
lParam
)
{
...
...
@@ -2176,6 +2177,7 @@ TREEVIEW_Create (HWND hwnd, WPARAM wParam, LPARAM lParam)
infoPtr
->
clrText
=-
1
;
/* use system color */
infoPtr
->
dropItem
=
0
;
infoPtr
->
pCallBackSort
=
NULL
;
infoPtr
->
uScrollTime
=
300
;
/* milliseconds */
/*
infoPtr->hwndNotify = GetParent32 (hwnd);
...
...
@@ -3498,6 +3500,27 @@ TREEVIEW_KeyDown (HWND hwnd, WPARAM wParam, LPARAM lParam)
}
static
LRESULT
TREEVIEW_GetScrollTime
(
HWND
hwnd
)
{
TREEVIEW_INFO
*
infoPtr
=
TREEVIEW_GetInfoPtr
(
hwnd
);
return
infoPtr
->
uScrollTime
;
}
static
LRESULT
TREEVIEW_SetScrollTime
(
HWND
hwnd
,
UINT
uScrollTime
)
{
TREEVIEW_INFO
*
infoPtr
=
TREEVIEW_GetInfoPtr
(
hwnd
);
UINT
uOldScrollTime
=
infoPtr
->
uScrollTime
;
infoPtr
->
uScrollTime
=
min
(
uScrollTime
,
100
);
return
uOldScrollTime
;
}
LRESULT
WINAPI
TREEVIEW_WindowProc
(
HWND
hwnd
,
UINT
uMsg
,
WPARAM
wParam
,
LPARAM
lParam
)
{
...
...
@@ -3542,7 +3565,7 @@ TREEVIEW_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return
TREEVIEW_GetItemA
(
hwnd
,
wParam
,
lParam
);
case
TVM_GETITEMW
:
FIXME
(
"Unimplemented msg TVM_GETITEM
32
W
\n
"
);
FIXME
(
"Unimplemented msg TVM_GETITEMW
\n
"
);
return
0
;
case
TVM_SETITEMA
:
...
...
@@ -3553,11 +3576,11 @@ TREEVIEW_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return
0
;
case
TVM_EDITLABELA
:
FIXME
(
"Unimplemented msg TVM_EDITLABEL
32
A
\n
"
);
FIXME
(
"Unimplemented msg TVM_EDITLABELA
\n
"
);
return
0
;
case
TVM_EDITLABELW
:
FIXME
(
"Unimplemented msg TVM_EDITLABEL
32
W
\n
"
);
FIXME
(
"Unimplemented msg TVM_EDITLABELW
\n
"
);
return
0
;
case
TVM_GETEDITCONTROL
:
...
...
@@ -3586,11 +3609,11 @@ TREEVIEW_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return
TREEVIEW_EndEditLabelNow
(
hwnd
,
wParam
,
lParam
);
case
TVM_GETISEARCHSTRINGA
:
FIXME
(
"Unimplemented msg TVM_GETISEARCHSTRING
32
A
\n
"
);
FIXME
(
"Unimplemented msg TVM_GETISEARCHSTRINGA
\n
"
);
return
0
;
case
TVM_GETISEARCHSTRINGW
:
FIXME
(
"Unimplemented msg TVM_GETISEARCHSTRING
32
W
\n
"
);
FIXME
(
"Unimplemented msg TVM_GETISEARCHSTRINGW
\n
"
);
return
0
;
case
TVM_GETTOOLTIPS
:
...
...
@@ -3622,12 +3645,10 @@ TREEVIEW_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return
TREEVIEW_GetTextColor
(
hwnd
);
case
TVM_SETSCROLLTIME
:
FIXME
(
"Unimplemented msg TVM_SETSCROLLTIME
\n
"
);
return
0
;
return
TREEVIEW_SetScrollTime
(
hwnd
,
(
UINT
)
wParam
);
case
TVM_GETSCROLLTIME
:
FIXME
(
"Unimplemented msg TVM_GETSCROLLTIME
\n
"
);
return
0
;
return
TREEVIEW_GetScrollTime
(
hwnd
);
case
TVM_GETITEMSTATE
:
return
TREEVIEW_GetItemState
(
hwnd
,
wParam
,
lParam
);
...
...
include/listview.h
View file @
f9b58070
...
...
@@ -45,6 +45,7 @@ typedef struct tagLISTVIEW_INFO
INT
nItemHeight
;
INT
nItemWidth
;
INT
nSelectionMark
;
INT
nHotItem
;
SHORT
notifyFormat
;
RECT
rcList
;
RECT
rcView
;
...
...
include/treeview.h
View file @
f9b58070
...
...
@@ -53,6 +53,7 @@ typedef struct tagTREEVIEW_INFO
HTREEITEM
uMaxHandle
;
/* needed for delete_item */
HTREEITEM
TopRootItem
;
/* handle to first item in treeview */
INT
cdmode
;
/* last custom draw setting */
UINT
uScrollTime
;
/* max. time for scrolling in milliseconds*/
UINT
uItemHeight
;
/* item height, -1 for default item height */
UINT
uRealItemHeight
;
/* current item height in pixels */
UINT
uVisibleHeight
;
/* visible height of treeview in pixels */
...
...
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