static BOOL BrsFolder_OnCreate( HWND hWnd, browse_info *info ) { LPBROWSEINFOW lpBrowseInfo = info->lpBrowseInfo; info->hWnd = hWnd; SetPropW( hWnd, szBrowseFolderInfo, info ); if (lpBrowseInfo->ulFlags & BIF_NEWDIALOGSTYLE) FIXME("flags BIF_NEWDIALOGSTYLE partially implemented\n"); if (lpBrowseInfo->ulFlags & ~SUPPORTEDFLAGS) FIXME("flags %x not implemented\n", lpBrowseInfo->ulFlags & ~SUPPORTEDFLAGS); if (lpBrowseInfo->lpszTitle) SetWindowTextW( GetDlgItem(hWnd, IDD_TITLE), lpBrowseInfo->lpszTitle ); else ShowWindow( GetDlgItem(hWnd, IDD_TITLE), SW_HIDE ); if (!(lpBrowseInfo->ulFlags & BIF_STATUSTEXT) || (lpBrowseInfo->ulFlags & BIF_NEWDIALOGSTYLE)) ShowWindow( GetDlgItem(hWnd, IDD_STATUS), SW_HIDE ); /* Hide "Make New Folder" Button? */ if ((lpBrowseInfo->ulFlags & BIF_NONEWFOLDERBUTTON) || !(lpBrowseInfo->ulFlags & BIF_NEWDIALOGSTYLE)) ShowWindow( GetDlgItem(hWnd, IDD_MAKENEWFOLDER), SW_HIDE ); /* Hide the editbox? */ if (!(lpBrowseInfo->ulFlags & BIF_EDITBOX)) { ShowWindow( GetDlgItem(hWnd, IDD_FOLDER), SW_HIDE ); ShowWindow( GetDlgItem(hWnd, IDD_FOLDERTEXT), SW_HIDE ); } info->hwndTreeView = GetDlgItem( hWnd, IDD_TREEVIEW ); if (info->hwndTreeView) { InitializeTreeView( info ); /* Resize the treeview if there's not editbox */ if ((lpBrowseInfo->ulFlags & BIF_NEWDIALOGSTYLE) && !(lpBrowseInfo->ulFlags & BIF_EDITBOX)) { RECT rc; GetClientRect(info->hwndTreeView, &rc); SetWindowPos(info->hwndTreeView, HWND_TOP, 0, 0, rc.right, rc.bottom + 40, SWP_NOMOVE); } } else ERR("treeview control missing!\n"); browsefolder_callback( info->lpBrowseInfo, hWnd, BFFM_INITIALIZED, 0 ); return TRUE; }
static HRESULT BrsFolder_Treeview_Changed( browse_info *info, NMTREEVIEWW *pnmtv ) { LPTV_ITEMDATA lptvid = (LPTV_ITEMDATA) pnmtv->itemNew.lParam; lptvid = (LPTV_ITEMDATA) pnmtv->itemNew.lParam; info->pidlRet = lptvid->lpifq; browsefolder_callback( info->lpBrowseInfo, info->hWnd, BFFM_SELCHANGED, (LPARAM)info->pidlRet ); BrsFolder_CheckValidSelection( info, lptvid ); return 0; }
static HRESULT BrsFolder_Treeview_Changed( browse_info *info, NMTREEVIEWW *pnmtv ) { LPTV_ITEMDATA lptvid = (LPTV_ITEMDATA) pnmtv->itemNew.lParam; WCHAR name[MAX_PATH]; ILFree(info->pidlRet); info->pidlRet = ILClone(lptvid->lpifq); if (GetName(lptvid->lpsfParent, lptvid->lpi, SHGDN_NORMAL, name)) SetWindowTextW( GetDlgItem(info->hWnd, IDD_FOLDERTEXT), name ); browsefolder_callback( info->lpBrowseInfo, info->hWnd, BFFM_SELCHANGED, (LPARAM)info->pidlRet ); BrsFolder_CheckValidSelection( info, lptvid ); return S_OK; }