Save the select test info on close.

The browse dialog now lists all winetest dlls and allows selection of either all tests in all dlls, all tests within a dll, or the option to choose individual tests. (rewuires a modified winetest framework)

svn path=/trunk/; revision=34034
This commit is contained in:
Ged Murphy 2008-06-20 11:20:26 +00:00
parent 938f407a80
commit 0537163f8d
4 changed files with 49 additions and 20 deletions

View file

@ -88,8 +88,6 @@ GetListOfTestDlls(PMAIN_WND_INFO pInfo)
{
if (!(findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
{
//MessageBoxW(NULL, findFileData.cFileName, NULL, 0);
/* set the path */
wcscpy(ptr, szDllPath);
@ -124,11 +122,9 @@ FreeItemTag(PMAIN_WND_INFO pInfo,
HTREEITEM hItem)
{
TV_ITEM tvItem;
WCHAR buf[256];
tvItem.hItem = hItem;
tvItem.mask = TVIF_PARAM | TVIF_TEXT;
tvItem.pszText = buf;
tvItem.mask = TVIF_PARAM;
(void)TreeView_GetItem(pInfo->hBrowseTV, &tvItem);
@ -217,8 +213,10 @@ BuildTestItemData(LPWSTR lpDll,
sizeof(TEST_ITEM));
if (pItem)
{
wcsncpy(pItem->szSelectedDll, lpDll, MAX_PATH);
wcsncpy(pItem->szRunString, lpRun, MAX_RUN_CMD);
if (lpDll)
wcsncpy(pItem->szSelectedDll, lpDll, MAX_PATH);
if (lpRun)
wcsncpy(pItem->szRunString, lpRun, MAX_RUN_CMD);
}
return pItem;
@ -229,6 +227,7 @@ PopulateTreeView(PMAIN_WND_INFO pInfo)
{
HTREEITEM hRoot;
HIMAGELIST hImgList;
PTEST_ITEM pTestItem;
DLLNAME GetTestName;
MODULES GetModulesInTest;
HMODULE hDll;
@ -250,11 +249,13 @@ PopulateTreeView(PMAIN_WND_INFO pInfo)
hImgList,
TVSIL_NORMAL);
pTestItem = BuildTestItemData(L"", L"Full");
/* insert the root item into the tree */
hRoot = InsertIntoTreeView(pInfo->hBrowseTV,
NULL,
L"Full",
0,
pTestItem,
IL_MAIN,
HAS_CHILD);
@ -272,7 +273,6 @@ PopulateTreeView(PMAIN_WND_INFO pInfo)
LPSTR lpModules, ptr;
LPWSTR lpModW;
INT numMods;
PTEST_ITEM pTestItem;
lpTestName = GetTestName();
@ -383,14 +383,43 @@ BrowseDlgProc(HWND hDlg,
case WM_COMMAND:
{
if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
switch (LOWORD(wParam))
{
HeapFree(GetProcessHeap(), 0, pInfo->lpDllList);
pInfo->lpDllList = NULL;
case IDOK:
{
TV_ITEM tvItem;
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
tvItem.hItem = TreeView_GetSelection(pInfo->hBrowseTV);
tvItem.mask = TVIF_PARAM;
if (TreeView_GetItem(pInfo->hBrowseTV, &tvItem))
{
PTEST_ITEM pItem;
pItem = (PTEST_ITEM)tvItem.lParam;
if (pItem)
CopyMemory(&pInfo->SelectedTest, pItem, sizeof(TEST_ITEM));
EndDialog(hDlg,
LOWORD(wParam));
}
else
{
DisplayMessage(L"Please select an item");
}
break;
}
case IDCANCEL:
{
HeapFree(GetProcessHeap(), 0, pInfo->lpDllList);
pInfo->lpDllList = NULL;
EndDialog(hDlg,
LOWORD(wParam));
return TRUE;
}
}
break;

View file

@ -29,7 +29,7 @@ STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME
CAPTION "Test hierarchy"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
PUSHBUTTON "Select", IDC_SELECT, 202, 7, 50, 14
PUSHBUTTON "Select", IDOK, 202, 7, 50, 14
PUSHBUTTON "Close", IDCANCEL, 202, 34, 50, 14
CONTROL "", IDC_TREEVIEW, "SysTreeView32", WS_BORDER | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT, 7, 7, 189, 236
PUSHBUTTON "Close", IDOK, 202, 34, 50, 14
END

View file

@ -208,7 +208,7 @@ VOID DisplayError(INT err)
LocalFree(lpMsgBuf);
}
VOID DisplayString(LPWSTR lpMsg)
VOID DisplayMessage(LPWSTR lpMsg)
{
MessageBoxW(NULL, lpMsg, L"Note!", MB_ICONEXCLAMATION|MB_OK);
}

View file

@ -32,7 +32,7 @@ typedef struct _MAIN_WND_INFO
LPWSTR lpDllList;
INT numDlls;
PTEST_ITEM SelectedTest;
TEST_ITEM SelectedTest;
} MAIN_WND_INFO, *PMAIN_WND_INFO;
@ -46,7 +46,7 @@ BOOL CALLBACK BrowseDlgProc(HWND hDlg, UINT Message, WPARAM wParam, LPARAM lPara
/* misc.c */
HIMAGELIST InitImageList(UINT StartResource, UINT EndResource, UINT Width, UINT Height);
VOID DisplayString(LPWSTR lpMsg);
VOID DisplayMessage(LPWSTR lpMsg);
VOID DisplayError(INT err);
DWORD AnsiToUnicode(LPCSTR lpSrcStr, LPWSTR *lpDstStr);