Some more messages.
This commit is contained in:
parent
e2ab4d03e1
commit
f9b580701f
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* Listview control
|
* Listview control
|
||||||
*
|
*
|
||||||
* Copyright 1998 Eric Kohl
|
* Copyright 1998, 1999 Eric Kohl
|
||||||
* Copyright 1999 Luc Tourangeau
|
* Copyright 1999 Luc Tourangeau
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
|
@ -10,6 +10,7 @@
|
||||||
* TODO:
|
* TODO:
|
||||||
* 1. No horizontal scrolling when header is larger than the client area.
|
* 1. No horizontal scrolling when header is larger than the client area.
|
||||||
* 2. Drawing optimizations.
|
* 2. Drawing optimizations.
|
||||||
|
* 3. Hot item handling.
|
||||||
*
|
*
|
||||||
* Notifications:
|
* Notifications:
|
||||||
* LISTVIEW_Notify : most notifications from children (editbox and header)
|
* LISTVIEW_Notify : most notifications from children (editbox and header)
|
||||||
|
@ -18,20 +19,21 @@
|
||||||
* LISTVIEW_SetItemCount : empty stub
|
* LISTVIEW_SetItemCount : empty stub
|
||||||
*
|
*
|
||||||
* Unicode:
|
* Unicode:
|
||||||
* LISTVIEW_SetItem32W : no unicode support
|
* LISTVIEW_SetItemW : no unicode support
|
||||||
* LISTVIEW_InsertItem32W : no unicode support
|
* LISTVIEW_InsertItemW : no unicode support
|
||||||
* LISTVIEW_InsertColumn32W : no unicode support
|
* LISTVIEW_InsertColumnW : no unicode support
|
||||||
* LISTVIEW_GetColumnW : no unicode support
|
* LISTVIEW_GetColumnW : no unicode support
|
||||||
|
* LISTVIEW_SetColumnW : no unicode support
|
||||||
*
|
*
|
||||||
* Advanced functionality:
|
* Advanced functionality:
|
||||||
* LISTVIEW_GetNumberOfWorkAreas : not implemented
|
* LISTVIEW_GetNumberOfWorkAreas : not implemented
|
||||||
* LISTVIEW_GetHotCursor : not implemented
|
* LISTVIEW_GetHotCursor : not implemented
|
||||||
* LISTVIEW_GetHotItem : not implemented
|
|
||||||
* LISTVIEW_GetHoverTime : not implemented
|
* LISTVIEW_GetHoverTime : not implemented
|
||||||
* LISTVIEW_GetISearchString : not implemented
|
* LISTVIEW_GetISearchString : not implemented
|
||||||
* LISTVIEW_GetBkImage : not implemented
|
* LISTVIEW_GetBkImage : not implemented
|
||||||
* LISTVIEW_EditLabel : REPORT (need to implement a timer)
|
* LISTVIEW_EditLabel : REPORT (need to implement a timer)
|
||||||
* LISTVIEW_GetColumnOrderArray : not implemented
|
* LISTVIEW_GetColumnOrderArray : not implemented
|
||||||
|
* LISTVIEW_SetColumnOrderArray : not implemented
|
||||||
* LISTVIEW_Arrange : empty stub
|
* LISTVIEW_Arrange : empty stub
|
||||||
* LISTVIEW_ApproximateViewRect : incomplete
|
* LISTVIEW_ApproximateViewRect : incomplete
|
||||||
* LISTVIEW_Scroll : not implemented
|
* LISTVIEW_Scroll : not implemented
|
||||||
|
@ -3161,7 +3163,28 @@ static LRESULT LISTVIEW_GetCountPerPage(HWND hwnd)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* LISTVIEW_GetEditControl */
|
/* 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:
|
* DESCRIPTION:
|
||||||
|
@ -3416,8 +3439,30 @@ static LRESULT LISTVIEW_GetItemA(HWND hwnd, LPLVITEMA lpLVItem)
|
||||||
|
|
||||||
/* LISTVIEW_GetItemW */
|
/* LISTVIEW_GetItemW */
|
||||||
/* LISTVIEW_GetHotCursor */
|
/* 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:
|
* DESCRIPTION:
|
||||||
|
@ -4632,6 +4677,8 @@ static LRESULT LISTVIEW_SetBkColor(HWND hwnd, COLORREF clrBk)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* LISTVIEW_SetBkImage */
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* DESCRIPTION:
|
* DESCRIPTION:
|
||||||
* Sets the callback mask. This mask will be used when the parent
|
* 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;
|
return bResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* LISTVIEW_SetColumnW */
|
||||||
|
/* LISTVIEW_SetColumnOrderArray */
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* DESCRIPTION:
|
* DESCRIPTION:
|
||||||
* Sets the width of a column
|
* Sets the width of a column
|
||||||
|
@ -4812,6 +4862,71 @@ static LRESULT LISTVIEW_SetColumnWidth(HWND hwnd, INT iCol, INT cx)
|
||||||
return lret;
|
return lret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/***
|
||||||
|
* 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:
|
* DESCRIPTION:
|
||||||
* Sets image lists.
|
* Sets image lists.
|
||||||
|
@ -4898,13 +5013,35 @@ static LRESULT LISTVIEW_SetItemA(HWND hwnd, LPLVITEMA lpLVItem)
|
||||||
* PARAMETER(S):
|
* PARAMETER(S):
|
||||||
* [I] HWND : window handle
|
* [I] HWND : window handle
|
||||||
* [I] INT : item count (prjected number of items)
|
* [I] INT : item count (prjected number of items)
|
||||||
|
* [I] DWORD : update flags
|
||||||
*
|
*
|
||||||
* RETURN:
|
* RETURN:
|
||||||
* None
|
* SUCCESS : TRUE
|
||||||
|
* FAILURE : FALSE
|
||||||
*/
|
*/
|
||||||
static VOID LISTVIEW_SetItemCount(HWND hwnd, INT nItemCount)
|
static BOOL LISTVIEW_SetItemCount(HWND hwnd, INT nItems, DWORD dwFlags)
|
||||||
{
|
{
|
||||||
FIXME("empty stub!\n");
|
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))
|
||||||
|
{
|
||||||
|
/* 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;
|
return bResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* LISTVIEW_SetItemPosition32 */
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* DESCRIPTION:
|
* DESCRIPTION:
|
||||||
* Sets the state of one or many items.
|
* Sets the state of one or many items.
|
||||||
|
@ -5036,6 +5175,29 @@ static BOOL LISTVIEW_SetItemTextA(HWND hwnd, INT nItem, LPLVITEMA lpLVItem)
|
||||||
return bResult;
|
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:
|
* DESCRIPTION:
|
||||||
* Sets the text background color.
|
* Sets the text background color.
|
||||||
|
@ -5080,6 +5242,9 @@ static LRESULT LISTVIEW_SetTextColor (HWND hwnd, COLORREF clrText)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* LISTVIEW_SetToolTips */
|
||||||
|
/* LISTVIEW_SetUnicodeFormat */
|
||||||
|
/* LISTVIEW_SetWorkAreas */
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* DESCRIPTION:
|
* DESCRIPTION:
|
||||||
|
@ -5168,6 +5333,8 @@ static LRESULT LISTVIEW_SortItems(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* LISTVIEW_SubItemHitTest */
|
||||||
|
|
||||||
/***
|
/***
|
||||||
* DESCRIPTION:
|
* DESCRIPTION:
|
||||||
* Updates an items or rearranges the listview control.
|
* 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->uCallbackMask = 0;
|
||||||
infoPtr->nFocusedItem = -1;
|
infoPtr->nFocusedItem = -1;
|
||||||
infoPtr->nSelectionMark = -1;
|
infoPtr->nSelectionMark = -1;
|
||||||
|
infoPtr->nHotItem = -1;
|
||||||
infoPtr->iconSpacing.cx = GetSystemMetrics(SM_CXICONSPACING);
|
infoPtr->iconSpacing.cx = GetSystemMetrics(SM_CXICONSPACING);
|
||||||
infoPtr->iconSpacing.cy = GetSystemMetrics(SM_CYICONSPACING);
|
infoPtr->iconSpacing.cy = GetSystemMetrics(SM_CYICONSPACING);
|
||||||
ZeroMemory(&infoPtr->rcList, sizeof(RECT));
|
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);
|
return LISTVIEW_GetColumnA(hwnd, (INT)wParam, (LPLVCOLUMNA)lParam);
|
||||||
|
|
||||||
/* case LVM_GETCOLUMNW: */
|
/* case LVM_GETCOLUMNW: */
|
||||||
/* case LVM_GETCOLUMNORDERARRAY: */
|
|
||||||
|
case LVM_GETCOLUMNORDERARRAY:
|
||||||
|
FIXME("Unimplemented msg LVM_GETCOLUMNORDERARRAY\n");
|
||||||
|
return 0;
|
||||||
|
|
||||||
case LVM_GETCOLUMNWIDTH:
|
case LVM_GETCOLUMNWIDTH:
|
||||||
return LISTVIEW_GetColumnWidth(hwnd, (INT)wParam);
|
return LISTVIEW_GetColumnWidth(hwnd, (INT)wParam);
|
||||||
|
@ -6489,13 +6660,18 @@ LRESULT WINAPI LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,
|
||||||
return LISTVIEW_GetCountPerPage(hwnd);
|
return LISTVIEW_GetCountPerPage(hwnd);
|
||||||
|
|
||||||
/* case LVM_GETEDITCONTROL: */
|
/* case LVM_GETEDITCONTROL: */
|
||||||
/* case LVM_GETEXTENDEDLISTVIEWSTYLE: */
|
|
||||||
|
case LVM_GETEXTENDEDLISTVIEWSTYLE:
|
||||||
|
return LISTVIEW_GetExtendedListViewStyle(hwnd);
|
||||||
|
|
||||||
case LVM_GETHEADER:
|
case LVM_GETHEADER:
|
||||||
return LISTVIEW_GetHeader(hwnd);
|
return LISTVIEW_GetHeader(hwnd);
|
||||||
|
|
||||||
/* case LVM_GETHOTCURSOR: */
|
/* case LVM_GETHOTCURSOR: */
|
||||||
/* case LVM_GETHOTITEM: */
|
|
||||||
|
case LVM_GETHOTITEM:
|
||||||
|
return LISTVIEW_GetHotItem(hwnd);
|
||||||
|
|
||||||
/* case LVM_GETHOVERTIME: */
|
/* case LVM_GETHOVERTIME: */
|
||||||
|
|
||||||
case LVM_GETIMAGELIST:
|
case LVM_GETIMAGELIST:
|
||||||
|
@ -6598,15 +6774,25 @@ LRESULT WINAPI LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,
|
||||||
case LVM_SETCOLUMNA:
|
case LVM_SETCOLUMNA:
|
||||||
return LISTVIEW_SetColumnA(hwnd, (INT)wParam, (LPLVCOLUMNA)lParam);
|
return LISTVIEW_SetColumnA(hwnd, (INT)wParam, (LPLVCOLUMNA)lParam);
|
||||||
|
|
||||||
/* case LVM_SETCOLUMNW: */
|
case LVM_SETCOLUMNW:
|
||||||
/* case LVM_SETCOLUMNORDERARRAY: */
|
FIXME("Unimplemented msg LVM_SETCOLUMNW\n");
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
case LVM_SETCOLUMNORDERARRAY:
|
||||||
|
FIXME("Unimplemented msg LVM_SETCOLUMNORDERARRAY\n");
|
||||||
|
return 0;
|
||||||
|
|
||||||
case LVM_SETCOLUMNWIDTH:
|
case LVM_SETCOLUMNWIDTH:
|
||||||
return LISTVIEW_SetColumnWidth(hwnd, (INT)wParam, (INT)lParam);
|
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_SETHOTCURSOR: */
|
||||||
/* case LVM_SETHOTITEM: */
|
|
||||||
|
case LVM_SETHOTITEM:
|
||||||
|
return LISTVIEW_SetHotItem(hwnd, (INT)wParam);
|
||||||
|
|
||||||
/* case LVM_SETHOVERTIME: */
|
/* case LVM_SETHOVERTIME: */
|
||||||
/* case LVM_SETICONSPACING: */
|
/* case LVM_SETICONSPACING: */
|
||||||
|
|
||||||
|
@ -6619,14 +6805,13 @@ LRESULT WINAPI LISTVIEW_WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,
|
||||||
/* case LVM_SETITEMW: */
|
/* case LVM_SETITEMW: */
|
||||||
|
|
||||||
case LVM_SETITEMCOUNT:
|
case LVM_SETITEMCOUNT:
|
||||||
LISTVIEW_SetItemCount(hwnd, (INT)wParam);
|
return LISTVIEW_SetItemCount(hwnd, (INT)wParam, (DWORD)lParam);
|
||||||
break;
|
|
||||||
|
|
||||||
case LVM_SETITEMPOSITION:
|
case LVM_SETITEMPOSITION:
|
||||||
return LISTVIEW_SetItemPosition(hwnd, (INT)wParam, (INT)LOWORD(lParam),
|
return LISTVIEW_SetItemPosition(hwnd, (INT)wParam, (INT)LOWORD(lParam),
|
||||||
(INT)HIWORD(lParam));
|
(INT)HIWORD(lParam));
|
||||||
|
|
||||||
/* case LVM_SETITEMPOSITION: */
|
/* case LVM_SETITEMPOSITION32: */
|
||||||
|
|
||||||
case LVM_SETITEMSTATE:
|
case LVM_SETITEMSTATE:
|
||||||
return LISTVIEW_SetItemState(hwnd, (INT)wParam, (LPLVITEMA)lParam);
|
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:
|
case LVM_SETITEMTEXTA:
|
||||||
return LISTVIEW_SetItemTextA(hwnd, (INT)wParam, (LPLVITEMA)lParam);
|
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:
|
case LVM_SETTEXTBKCOLOR:
|
||||||
return LISTVIEW_SetTextBkColor(hwnd, (COLORREF)lParam);
|
return LISTVIEW_SetTextBkColor(hwnd, (COLORREF)lParam);
|
||||||
|
|
|
@ -1461,7 +1461,8 @@ LRESULT WINAPI TREEVIEW_Sort (
|
||||||
|
|
||||||
/* undocumented feature: TVI_ROOT means `sort the whole tree' */
|
/* 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 */
|
/* Check for a valid handle to the parent item */
|
||||||
if (!TREEVIEW_ValidItem(infoPtr, parent))
|
if (!TREEVIEW_ValidItem(infoPtr, parent))
|
||||||
|
@ -1870,6 +1871,8 @@ TREEVIEW_InsertItemA (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
|
|
||||||
return (LRESULT) iItem;
|
return (LRESULT) iItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static LRESULT
|
static LRESULT
|
||||||
TREEVIEW_InsertItemW(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
TREEVIEW_InsertItemW(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
|
@ -1921,8 +1924,6 @@ TREEVIEW_InsertItemW(HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static LRESULT
|
static LRESULT
|
||||||
TREEVIEW_DeleteItem (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
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->clrText=-1; /* use system color */
|
||||||
infoPtr->dropItem=0;
|
infoPtr->dropItem=0;
|
||||||
infoPtr->pCallBackSort=NULL;
|
infoPtr->pCallBackSort=NULL;
|
||||||
|
infoPtr->uScrollTime = 300; /* milliseconds */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
infoPtr->hwndNotify = GetParent32 (hwnd);
|
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
|
LRESULT WINAPI
|
||||||
TREEVIEW_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
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);
|
return TREEVIEW_GetItemA (hwnd, wParam, lParam);
|
||||||
|
|
||||||
case TVM_GETITEMW:
|
case TVM_GETITEMW:
|
||||||
FIXME("Unimplemented msg TVM_GETITEM32W\n");
|
FIXME("Unimplemented msg TVM_GETITEMW\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case TVM_SETITEMA:
|
case TVM_SETITEMA:
|
||||||
|
@ -3553,11 +3576,11 @@ TREEVIEW_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case TVM_EDITLABELA:
|
case TVM_EDITLABELA:
|
||||||
FIXME("Unimplemented msg TVM_EDITLABEL32A \n");
|
FIXME("Unimplemented msg TVM_EDITLABELA \n");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case TVM_EDITLABELW:
|
case TVM_EDITLABELW:
|
||||||
FIXME("Unimplemented msg TVM_EDITLABEL32W \n");
|
FIXME("Unimplemented msg TVM_EDITLABELW \n");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case TVM_GETEDITCONTROL:
|
case TVM_GETEDITCONTROL:
|
||||||
|
@ -3586,11 +3609,11 @@ TREEVIEW_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
return TREEVIEW_EndEditLabelNow (hwnd, wParam, lParam);
|
return TREEVIEW_EndEditLabelNow (hwnd, wParam, lParam);
|
||||||
|
|
||||||
case TVM_GETISEARCHSTRINGA:
|
case TVM_GETISEARCHSTRINGA:
|
||||||
FIXME("Unimplemented msg TVM_GETISEARCHSTRING32A\n");
|
FIXME("Unimplemented msg TVM_GETISEARCHSTRINGA\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case TVM_GETISEARCHSTRINGW:
|
case TVM_GETISEARCHSTRINGW:
|
||||||
FIXME("Unimplemented msg TVM_GETISEARCHSTRING32W\n");
|
FIXME("Unimplemented msg TVM_GETISEARCHSTRINGW\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
case TVM_GETTOOLTIPS:
|
case TVM_GETTOOLTIPS:
|
||||||
|
@ -3622,12 +3645,10 @@ TREEVIEW_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
return TREEVIEW_GetTextColor (hwnd);
|
return TREEVIEW_GetTextColor (hwnd);
|
||||||
|
|
||||||
case TVM_SETSCROLLTIME:
|
case TVM_SETSCROLLTIME:
|
||||||
FIXME("Unimplemented msg TVM_SETSCROLLTIME\n");
|
return TREEVIEW_SetScrollTime (hwnd, (UINT)wParam);
|
||||||
return 0;
|
|
||||||
|
|
||||||
case TVM_GETSCROLLTIME:
|
case TVM_GETSCROLLTIME:
|
||||||
FIXME("Unimplemented msg TVM_GETSCROLLTIME\n");
|
return TREEVIEW_GetScrollTime (hwnd);
|
||||||
return 0;
|
|
||||||
|
|
||||||
case TVM_GETITEMSTATE:
|
case TVM_GETITEMSTATE:
|
||||||
return TREEVIEW_GetItemState (hwnd,wParam, lParam);
|
return TREEVIEW_GetItemState (hwnd,wParam, lParam);
|
||||||
|
|
|
@ -45,6 +45,7 @@ typedef struct tagLISTVIEW_INFO
|
||||||
INT nItemHeight;
|
INT nItemHeight;
|
||||||
INT nItemWidth;
|
INT nItemWidth;
|
||||||
INT nSelectionMark;
|
INT nSelectionMark;
|
||||||
|
INT nHotItem;
|
||||||
SHORT notifyFormat;
|
SHORT notifyFormat;
|
||||||
RECT rcList;
|
RECT rcList;
|
||||||
RECT rcView;
|
RECT rcView;
|
||||||
|
|
|
@ -53,6 +53,7 @@ typedef struct tagTREEVIEW_INFO
|
||||||
HTREEITEM uMaxHandle; /* needed for delete_item */
|
HTREEITEM uMaxHandle; /* needed for delete_item */
|
||||||
HTREEITEM TopRootItem; /* handle to first item in treeview */
|
HTREEITEM TopRootItem; /* handle to first item in treeview */
|
||||||
INT cdmode; /* last custom draw setting */
|
INT cdmode; /* last custom draw setting */
|
||||||
|
UINT uScrollTime; /* max. time for scrolling in milliseconds*/
|
||||||
UINT uItemHeight; /* item height, -1 for default item height */
|
UINT uItemHeight; /* item height, -1 for default item height */
|
||||||
UINT uRealItemHeight;/* current item height in pixels */
|
UINT uRealItemHeight;/* current item height in pixels */
|
||||||
UINT uVisibleHeight; /* visible height of treeview in pixels */
|
UINT uVisibleHeight; /* visible height of treeview in pixels */
|
||||||
|
|
Loading…
Reference in New Issue