Author: gadamopoulos
Date: Fri Jun  3 21:25:34 2016
New Revision: 71510

URL: http://svn.reactos.org/svn/reactos?rev=71510&view=rev
Log:
[BROWSEUI]
- CExplorerBand: Navigate to the selected item when the selection changes.
- Part of the work submitted by Sylvain Deverre.
CORE-10838

Modified:
    trunk/reactos/dll/win32/browseui/explorerband.cpp
    trunk/reactos/dll/win32/browseui/explorerband.h

Modified: trunk/reactos/dll/win32/browseui/explorerband.cpp
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/explorerband.cpp?rev=71510&r1=71509&r2=71510&view=diff
==============================================================================
--- trunk/reactos/dll/win32/browseui/explorerband.cpp   [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/explorerband.cpp   [iso-8859-1] Fri Jun  3 
21:25:34 2016
@@ -142,6 +142,22 @@
     return reinterpret_cast<NodeInfo*>(tvItem.lParam);
 }
 
+HRESULT CExplorerBand::UpdateBrowser(LPITEMIDLIST pidlGoto)
+{
+    CComPtr<IShellBrowser>              pBrowserService;
+    HRESULT                             hr;
+
+    hr = IUnknown_QueryService(pSite, SID_STopLevelBrowser, 
IID_PPV_ARG(IShellBrowser, &pBrowserService));
+    if (FAILED_UNEXPECTEDLY(hr))
+        return hr;
+
+    hr = pBrowserService->BrowseObject(pidlGoto, SBSP_SAMEBROWSER | 
SBSP_ABSOLUTE);
+    if (FAILED_UNEXPECTEDLY(hr))
+        return hr;
+
+    return hr;
+}
+
 // *** notifications handling ***
 BOOL CExplorerBand::OnTreeItemExpanding(LPNMTREEVIEW pnmtv)
 {
@@ -177,6 +193,16 @@
     return FALSE;
 }
 
+void CExplorerBand::OnSelectionChanged(LPNMTREEVIEW pnmtv)
+{
+    NodeInfo* pNodeInfo = GetNodeInfo(pnmtv->itemNew.hItem);
+
+    UpdateBrowser(pNodeInfo->absolutePidl);
+    SetFocus();
+    // Expand the node
+    //TreeView_Expand(m_hWnd, pnmtv->itemNew.hItem, TVE_EXPAND);
+}
+
 // *** Helper functions ***
 HTREEITEM CExplorerBand::InsertItem(HTREEITEM hParent, IShellFolder 
*psfParent, LPITEMIDLIST pElt, LPITEMIDLIST pEltRelative, BOOL bSort)
 {
@@ -558,6 +584,9 @@
             case TVN_ITEMEXPANDING:
                 *theResult = OnTreeItemExpanding((LPNMTREEVIEW)lParam);
                 break;
+            case TVN_SELCHANGED:
+                OnSelectionChanged((LPNMTREEVIEW)lParam);
+                break;
             default:
                 break;
         }

Modified: trunk/reactos/dll/win32/browseui/explorerband.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/browseui/explorerband.h?rev=71510&r1=71509&r2=71510&view=diff
==============================================================================
--- trunk/reactos/dll/win32/browseui/explorerband.h     [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/browseui/explorerband.h     [iso-8859-1] Fri Jun  3 
21:25:34 2016
@@ -69,9 +69,11 @@
     void DestroyExplorerBand();
 
     BOOL OnTreeItemExpanding(LPNMTREEVIEW pnmtv);
+    void OnSelectionChanged(LPNMTREEVIEW pnmtv);
 
     // *** Helper functions ***
     NodeInfo* GetNodeInfo(HTREEITEM hItem);
+    HRESULT UpdateBrowser(LPITEMIDLIST pidlGoto);
     HTREEITEM InsertItem(HTREEITEM hParent, IShellFolder *psfParent, 
LPITEMIDLIST pElt, LPITEMIDLIST pEltRelative, BOOL bSort);
     BOOL InsertSubitems(HTREEITEM hItem, NodeInfo *pNodeInfo); 
 


Reply via email to