explorerframe: Implement CollapseAll.
This commit is contained in:
parent
4a7628af8a
commit
e7a3998c1f
|
@ -361,6 +361,20 @@ static IShellItem *get_selected_shellitem(NSTC2Impl *This)
|
||||||
return shellitem_from_treeitem(This, get_selected_treeitem(This));
|
return shellitem_from_treeitem(This, get_selected_treeitem(This));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void collapse_all(NSTC2Impl *This, HTREEITEM node)
|
||||||
|
{
|
||||||
|
HTREEITEM next;
|
||||||
|
|
||||||
|
/* Collapse this node first, and then first child/next sibling. */
|
||||||
|
SendMessageW(This->hwnd_tv, TVM_EXPAND, TVE_COLLAPSE, (LPARAM)node);
|
||||||
|
|
||||||
|
next = (HTREEITEM)SendMessageW(This->hwnd_tv, TVM_GETNEXTITEM, TVGN_CHILD, (LPARAM)node);
|
||||||
|
if(next) collapse_all(This, next);
|
||||||
|
|
||||||
|
next = (HTREEITEM)SendMessageW(This->hwnd_tv, TVM_GETNEXTITEM, TVGN_NEXT, (LPARAM)node);
|
||||||
|
if(next) collapse_all(This, next);
|
||||||
|
}
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* NamespaceTree window functions
|
* NamespaceTree window functions
|
||||||
*/
|
*/
|
||||||
|
@ -1143,8 +1157,13 @@ static HRESULT WINAPI NSTC2_fnGetItemRect(INameSpaceTreeControl2* iface,
|
||||||
static HRESULT WINAPI NSTC2_fnCollapseAll(INameSpaceTreeControl2* iface)
|
static HRESULT WINAPI NSTC2_fnCollapseAll(INameSpaceTreeControl2* iface)
|
||||||
{
|
{
|
||||||
NSTC2Impl *This = (NSTC2Impl*)iface;
|
NSTC2Impl *This = (NSTC2Impl*)iface;
|
||||||
FIXME("stub, %p\n", This);
|
nstc_root *root;
|
||||||
return E_NOTIMPL;
|
TRACE("%p\n", This);
|
||||||
|
|
||||||
|
LIST_FOR_EACH_ENTRY(root, &This->roots, nstc_root, entry)
|
||||||
|
collapse_all(This, root->htreeitem);
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI NSTC2_fnSetControlStyle(INameSpaceTreeControl2* iface,
|
static HRESULT WINAPI NSTC2_fnSetControlStyle(INameSpaceTreeControl2* iface,
|
||||||
|
|
|
@ -1077,9 +1077,16 @@ static void test_basics(void)
|
||||||
roots[9] = NULL;
|
roots[9] = NULL;
|
||||||
verify_root_order(pnstc, roots);
|
verify_root_order(pnstc, roots);
|
||||||
|
|
||||||
|
/* CollapseAll */
|
||||||
|
hr = INameSpaceTreeControl_CollapseAll(pnstc);
|
||||||
|
ok(hr == S_OK, "Got 0x%08x\n", hr);
|
||||||
|
|
||||||
hr = INameSpaceTreeControl_RemoveAllRoots(pnstc);
|
hr = INameSpaceTreeControl_RemoveAllRoots(pnstc);
|
||||||
ok(hr == S_OK, "Got (0x%08x)\n", hr);
|
ok(hr == S_OK, "Got (0x%08x)\n", hr);
|
||||||
|
|
||||||
|
hr = INameSpaceTreeControl_CollapseAll(pnstc);
|
||||||
|
ok(hr == S_OK, "Got 0x%08x\n", hr);
|
||||||
|
|
||||||
IShellItem_Release(psidesktop);
|
IShellItem_Release(psidesktop);
|
||||||
IShellItem_Release(psidesktop2);
|
IShellItem_Release(psidesktop2);
|
||||||
IShellItem_Release(psitestdir);
|
IShellItem_Release(psitestdir);
|
||||||
|
|
Loading…
Reference in New Issue