mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-11 20:35:50 +00:00
Added ability for tests to output messages
This commit is contained in:
parent
8e8373e02b
commit
55635798e1
@ -35,6 +35,8 @@ TCHAR *aURLs[] =
|
||||
_T("http://www.microsoft.com")
|
||||
};
|
||||
|
||||
CBrowseDlg *CBrowseDlg::m_pBrowseDlg = NULL;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// CBrowseDlg dialog
|
||||
|
||||
@ -51,7 +53,7 @@ CBrowseDlg::CBrowseDlg(CWnd* pParent /*=NULL*/)
|
||||
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
|
||||
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
|
||||
|
||||
|
||||
m_pBrowseDlg = this;
|
||||
m_pControlSite = NULL;
|
||||
m_clsid = CLSID_NULL;
|
||||
}
|
||||
@ -77,6 +79,7 @@ BEGIN_MESSAGE_MAP(CBrowseDlg, CDialog)
|
||||
ON_BN_CLICKED(IDC_BACKWARD, OnBackward)
|
||||
ON_BN_CLICKED(IDC_FORWARD, OnForward)
|
||||
ON_NOTIFY(TVN_SELCHANGED, IDC_TESTLIST, OnSelchangedTestlist)
|
||||
ON_NOTIFY(NM_DBLCLK, IDC_TESTLIST, OnDblclkTestlist)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
@ -251,47 +254,142 @@ void CBrowseDlg::OnForward()
|
||||
}
|
||||
}
|
||||
|
||||
void CBrowseDlg::RunTestSet(TestSet *pTestSet)
|
||||
{
|
||||
ASSERT(pTestSet);
|
||||
if (pTestSet == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
for (int j = 0; j < pTestSet->nTests; j++)
|
||||
{
|
||||
Test *pTest = &pTestSet->aTests[j];
|
||||
RunTest(pTest);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
TestResult CBrowseDlg::RunTest(Test *pTest)
|
||||
{
|
||||
ASSERT(pTest);
|
||||
TestResult nResult = trFailed;
|
||||
|
||||
CString szMsg;
|
||||
szMsg.Format(_T("Running test \"%s\""), pTest->szName);
|
||||
m_lbMessages.AddString(szMsg);
|
||||
|
||||
if (pTest && pTest->pfn)
|
||||
{
|
||||
BrowserInfo cInfo;
|
||||
|
||||
cInfo.clsid = m_clsid;
|
||||
cInfo.pControlSite = m_pControlSite;
|
||||
cInfo.pIUnknown = NULL;
|
||||
cInfo.pfnOutputString = CBrowseDlg::OutputString;
|
||||
if (cInfo.pControlSite)
|
||||
{
|
||||
cInfo.pControlSite->GetControlUnknown(&cInfo.pIUnknown);
|
||||
}
|
||||
nResult = pTest->pfn(&cInfo);
|
||||
pTest->nLastResult = nResult;
|
||||
if (cInfo.pIUnknown)
|
||||
{
|
||||
cInfo.pIUnknown->Release();
|
||||
}
|
||||
}
|
||||
|
||||
switch (nResult)
|
||||
{
|
||||
case trFailed:
|
||||
m_lbMessages.AddString(_T("Test failed"));
|
||||
break;
|
||||
case trPassed:
|
||||
m_lbMessages.AddString(_T("Test passed"));
|
||||
break;
|
||||
case trPartial:
|
||||
m_lbMessages.AddString(_T("Test partial"));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return nResult;
|
||||
}
|
||||
|
||||
void __cdecl CBrowseDlg::OutputString(const TCHAR *szMessage, ...)
|
||||
{
|
||||
if (m_pBrowseDlg == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
TCHAR szBuffer[256];
|
||||
|
||||
va_list cArgs;
|
||||
va_start(cArgs, szMessage);
|
||||
_vstprintf(szBuffer, szMessage, cArgs);
|
||||
va_end(cArgs);
|
||||
|
||||
CString szOutput;
|
||||
szOutput.Format(_T(" Test: %s"), szBuffer);
|
||||
|
||||
m_pBrowseDlg->m_lbMessages.AddString(szOutput);
|
||||
}
|
||||
|
||||
void CBrowseDlg::UpdateTest(HTREEITEM hItem, TestResult nResult)
|
||||
{
|
||||
if (nResult == trPassed)
|
||||
{
|
||||
m_tcTests.SetItemImage(hItem, IL_TESTPASSED, IL_TESTPASSED);
|
||||
}
|
||||
else if (nResult == trFailed)
|
||||
{
|
||||
m_tcTests.SetItemImage(hItem, IL_TESTFAILED, IL_TESTFAILED);
|
||||
}
|
||||
else if (nResult == trPartial)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
}
|
||||
|
||||
void CBrowseDlg::UpdateTestSet(HTREEITEM hItem)
|
||||
{
|
||||
// Examine the results
|
||||
HTREEITEM hTest = m_tcTests.GetNextItem(hItem, TVGN_CHILD);
|
||||
while (hTest)
|
||||
{
|
||||
Test *pTest = (Test *) m_tcTests.GetItemData(hTest);
|
||||
UpdateTest(hTest, pTest->nLastResult);
|
||||
hTest = m_tcTests.GetNextItem(hTest, TVGN_NEXT);
|
||||
}
|
||||
}
|
||||
|
||||
void CBrowseDlg::OnRuntest()
|
||||
{
|
||||
HTREEITEM hItem = m_tcTests.GetNextItem(NULL, TVGN_FIRSTVISIBLE);
|
||||
while (hItem)
|
||||
{
|
||||
UINT nState;
|
||||
|
||||
nState = m_tcTests.GetItemState(hItem, TVIS_SELECTED);
|
||||
if (!m_tcTests.ItemHasChildren(hItem) && nState & TVIS_SELECTED)
|
||||
UINT nState = m_tcTests.GetItemState(hItem, TVIS_SELECTED);
|
||||
if (!(nState & TVIS_SELECTED))
|
||||
{
|
||||
Test *pTest = (Test *) m_tcTests.GetItemData(hItem);
|
||||
TestResult nResult = trFailed;
|
||||
if (pTest && pTest->pfn)
|
||||
{
|
||||
BrowserInfo cInfo;
|
||||
hItem = m_tcTests.GetNextItem(hItem, TVGN_NEXTVISIBLE);
|
||||
continue;
|
||||
}
|
||||
|
||||
cInfo.clsid = m_clsid;
|
||||
cInfo.pControlSite = m_pControlSite;
|
||||
cInfo.pIUnknown = NULL;
|
||||
if (cInfo.pControlSite)
|
||||
{
|
||||
cInfo.pControlSite->GetControlUnknown(&cInfo.pIUnknown);
|
||||
}
|
||||
nResult = pTest->pfn(&cInfo);
|
||||
if (cInfo.pIUnknown)
|
||||
{
|
||||
cInfo.pIUnknown->Release();
|
||||
}
|
||||
}
|
||||
if (nResult == trPassed)
|
||||
{
|
||||
m_tcTests.SetItemImage(hItem, IL_TESTPASSED, IL_TESTPASSED);
|
||||
}
|
||||
else if (nResult == trFailed)
|
||||
{
|
||||
m_tcTests.SetItemImage(hItem, IL_TESTFAILED, IL_TESTFAILED);
|
||||
}
|
||||
else if (nResult == trPartial)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
if (m_tcTests.ItemHasChildren(hItem))
|
||||
{
|
||||
// Run complete set of tests
|
||||
TestSet *pTestSet = (TestSet *) m_tcTests.GetItemData(hItem);
|
||||
RunTestSet(pTestSet);
|
||||
UpdateTestSet(hItem);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Find the test
|
||||
Test *pTest = (Test *) m_tcTests.GetItemData(hItem);
|
||||
TestResult nResult = RunTest(pTest);
|
||||
UpdateTest(hItem, nResult);
|
||||
}
|
||||
|
||||
hItem = m_tcTests.GetNextItem(hItem, TVGN_NEXTVISIBLE);
|
||||
@ -335,3 +433,9 @@ void CBrowseDlg::OnSelchangedTestlist(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
|
||||
*pResult = 0;
|
||||
}
|
||||
|
||||
void CBrowseDlg::OnDblclkTestlist(NMHDR* pNMHDR, LRESULT* pResult)
|
||||
{
|
||||
OnRuntest();
|
||||
*pResult = 0;
|
||||
}
|
||||
|
@ -20,7 +20,14 @@ public:
|
||||
|
||||
CBrowseDlg(CWnd* pParent = NULL); // standard constructor
|
||||
|
||||
static CBrowseDlg *m_pBrowseDlg;
|
||||
static void __cdecl CBrowseDlg::OutputString(const TCHAR *szMessage, ...);
|
||||
|
||||
HRESULT GetWebBrowser(IWebBrowser **pWebBrowser);
|
||||
void RunTestSet(TestSet *pTestSet);
|
||||
TestResult RunTest(Test *pTest);
|
||||
void UpdateTest(HTREEITEM hItem, TestResult nResult);
|
||||
void UpdateTestSet(HTREEITEM hItem);
|
||||
|
||||
// Dialog Data
|
||||
//{{AFX_DATA(CBrowseDlg)
|
||||
@ -53,6 +60,7 @@ protected:
|
||||
afx_msg void OnBackward();
|
||||
afx_msg void OnForward();
|
||||
afx_msg void OnSelchangedTestlist(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
afx_msg void OnDblclkTestlist(NMHDR* pNMHDR, LRESULT* pResult);
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
@ -56,6 +56,7 @@ void CPickerDlg::DoDataExchange(CDataExchange* pDX)
|
||||
BEGIN_MESSAGE_MAP(CPickerDlg, CDialog)
|
||||
//{{AFX_MSG_MAP(CPickerDlg)
|
||||
ON_BN_CLICKED(IDOK, OnOk)
|
||||
ON_LBN_DBLCLK(IDC_LISTBROWSER, OnDblclkListbrowser)
|
||||
//}}AFX_MSG_MAP
|
||||
END_MESSAGE_MAP()
|
||||
|
||||
@ -90,3 +91,8 @@ void CPickerDlg::OnOk()
|
||||
EndDialog(IDOK);
|
||||
}
|
||||
|
||||
|
||||
void CPickerDlg::OnDblclkListbrowser()
|
||||
{
|
||||
OnOk();
|
||||
}
|
||||
|
@ -38,6 +38,7 @@ protected:
|
||||
//{{AFX_MSG(CPickerDlg)
|
||||
afx_msg void OnOk();
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnDblclkListbrowser();
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
};
|
||||
|
@ -30,9 +30,97 @@ TestResult __cdecl tstDocument(BrowserInfo *pInfo)
|
||||
return trPassed;
|
||||
}
|
||||
|
||||
|
||||
void tstDrillerLevel(BrowserInfo *pInfo, IHTMLElementCollection *pCollection, int nLevel)
|
||||
{
|
||||
if (pCollection == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
LONG celem = 0;;
|
||||
HRESULT hr = pCollection->get_length( &celem );
|
||||
for ( int i=0; i< celem; i++ )
|
||||
{
|
||||
VARIANT varIndex;
|
||||
varIndex.vt = VT_UINT;
|
||||
varIndex.lVal = i;
|
||||
VARIANT var2;
|
||||
VariantInit( &var2 );
|
||||
CIPtr(IDispatch) cpDisp;
|
||||
|
||||
hr = pCollection->item( varIndex, var2, &cpDisp );
|
||||
if ( hr != S_OK )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
CIPtr(IHTMLElement) cpElem;
|
||||
|
||||
hr = cpDisp->QueryInterface( IID_IHTMLElement, (void **)&cpElem );
|
||||
if ( hr == S_OK )
|
||||
{
|
||||
|
||||
BSTR bstr;
|
||||
hr = cpElem->get_tagName(&bstr);
|
||||
|
||||
USES_CONVERSION;
|
||||
char szLevel[256];
|
||||
memset(szLevel, 0, sizeof(szLevel));
|
||||
memset(szLevel, ' ', nLevel);
|
||||
|
||||
CString strTag = bstr;
|
||||
pInfo->pfnOutputString(_T("Parsing element: %s%s"), A2T(szLevel), strTag);
|
||||
|
||||
CIPtr(IHTMLImgElement) cpImgElem;
|
||||
hr = cpDisp->QueryInterface( IID_IHTMLImgElement, (void **)&cpImgElem );
|
||||
if ( hr == S_OK )
|
||||
{
|
||||
cpImgElem->get_href(&bstr);
|
||||
}
|
||||
else
|
||||
{
|
||||
CIPtr(IHTMLAnchorElement) cpAnchElem;
|
||||
hr = cpDisp->QueryInterface( IID_IHTMLAnchorElement, (void **)&cpAnchElem );
|
||||
if ( hr == S_OK )
|
||||
{
|
||||
cpAnchElem->get_href(&bstr);
|
||||
}
|
||||
}
|
||||
|
||||
CIPtr(IDispatch) cpDispColl;
|
||||
cpElem->get_all(&cpDispColl);
|
||||
if (hr == S_OK)
|
||||
{
|
||||
CIPtr(IHTMLElementCollection) cpColl = cpDispColl;
|
||||
tstDrillerLevel(pInfo, cpColl, nLevel + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
TestResult __cdecl tstDriller(BrowserInfo *pInfo)
|
||||
{
|
||||
CIPtr(IHTMLDocument2) cpDocElement;
|
||||
pInfo->GetDocument(&cpDocElement);
|
||||
if (cpDocElement == NULL)
|
||||
{
|
||||
return trFailed;
|
||||
}
|
||||
|
||||
CIPtr(IHTMLElementCollection) cpColl;
|
||||
HRESULT hr = cpDocElement->get_all( &cpColl );
|
||||
if (hr == S_OK)
|
||||
{
|
||||
tstDrillerLevel(pInfo, cpColl, 0);
|
||||
}
|
||||
|
||||
return trPassed;
|
||||
}
|
||||
|
||||
TestResult __cdecl tstTesters(BrowserInfo *pInfo)
|
||||
{
|
||||
AfxMessageBox("Test architecture is reasonably sane!");
|
||||
pInfo->pfnOutputString("Test architecture is reasonably sane!");
|
||||
return trPassed;
|
||||
}
|
||||
|
||||
@ -62,6 +150,7 @@ TestResult __cdecl tstIWebBrowser(BrowserInfo *pInfo)
|
||||
|
||||
return trFailed;
|
||||
}
|
||||
|
||||
TestResult __cdecl tstIWebBrowser2(BrowserInfo *pInfo)
|
||||
{
|
||||
if (pInfo->pIUnknown == NULL)
|
||||
@ -99,23 +188,24 @@ TestResult __cdecl tstIWebBrowserApp(BrowserInfo *pInfo)
|
||||
|
||||
Test aBasic[] =
|
||||
{
|
||||
{ _T("Test Tester"), _T("Ensure that the testing architecture is working"), tstTesters },
|
||||
{ _T("Control basics"), _T("Ensure that the browser control is active"), tstControlActive },
|
||||
{ _T("IWebBrowser"), _T("Test if control has an IWebBrowser interface"), tstIWebBrowser },
|
||||
{ _T("IWebBrowser2"), _T("Test if control has an IWebBrowser2 interface"), tstIWebBrowser2 },
|
||||
{ _T("IWebBrowserApp"), _T("Test if control has an IWebBrowserApp interface"), tstIWebBrowserApp }
|
||||
{ _T("Test Tester"), _T("Ensure that the testing architecture is working"), tstTesters, trNotRun },
|
||||
{ _T("Control basics"), _T("Ensure that the browser control is active"), tstControlActive, trNotRun },
|
||||
{ _T("IWebBrowser"), _T("Test if control has an IWebBrowser interface"), tstIWebBrowser, trNotRun },
|
||||
{ _T("IWebBrowser2"), _T("Test if control has an IWebBrowser2 interface"), tstIWebBrowser2, trNotRun },
|
||||
{ _T("IWebBrowserApp"), _T("Test if control has an IWebBrowserApp interface"), tstIWebBrowserApp, trNotRun }
|
||||
};
|
||||
|
||||
Test aDHTML[] =
|
||||
{
|
||||
{ _T("get_Document"), _T("Test if browser has a top level element"), tstDocument }
|
||||
{ _T("get_Document"), _T("Test if browser has a top level element"), tstDocument },
|
||||
{ _T("parse DOM"), _T("Parse the document DOM"), tstDriller }
|
||||
};
|
||||
|
||||
TestSet aTestSets[] =
|
||||
{
|
||||
{ _T("Basic"), _T("Basic sanity tests"), 5, aBasic },
|
||||
{ _T("Browsing"), _T("Browsing and navigation tests"), 0, NULL },
|
||||
{ _T("DHTML"), _T("Test the DOM"), 1, aDHTML }
|
||||
{ _T("DHTML"), _T("Test the DOM"), 2, aDHTML }
|
||||
};
|
||||
|
||||
int nTestSets = sizeof(aTestSets) / sizeof(aTestSets[0]);
|
@ -23,17 +23,21 @@
|
||||
|
||||
enum TestResult
|
||||
{
|
||||
trNotRun,
|
||||
trFailed,
|
||||
trPassed,
|
||||
trPartial
|
||||
};
|
||||
|
||||
typedef void (__cdecl *OutputStringProc)(const TCHAR *szMessage, ...);
|
||||
|
||||
class BrowserInfo
|
||||
{
|
||||
public:
|
||||
CControlSiteInstance *pControlSite;
|
||||
IUnknown *pIUnknown;
|
||||
CLSID clsid;
|
||||
OutputStringProc pfnOutputString;
|
||||
|
||||
HRESULT GetWebBrowser(IWebBrowserApp **pWebBrowser)
|
||||
{
|
||||
@ -71,6 +75,7 @@ struct Test
|
||||
TCHAR *szName;
|
||||
TCHAR *szDesc;
|
||||
TestProc pfn;
|
||||
TestResult nLastResult;
|
||||
};
|
||||
|
||||
struct TestSet
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Microsoft Developer Studio Project File - Name="cbrowse" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 5.00
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Application" 0x0101
|
||||
@ -22,6 +22,7 @@ CFG=cbrowse - Win32 Debug
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
@ -42,8 +43,8 @@ RSC=rc.exe
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
|
||||
# ADD CPP /nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o NUL /win32
|
||||
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
|
||||
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG" /d "_AFXDLL"
|
||||
BSC32=bscmake.exe
|
||||
@ -66,9 +67,9 @@ LINK32=link.exe
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
|
||||
# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32
|
||||
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_AFXDLL" /Yu"stdafx.h" /FD /c
|
||||
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
|
||||
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"
|
||||
BSC32=bscmake.exe
|
||||
@ -94,13 +95,6 @@ SOURCE=.\cbrowse.cpp
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\cbrowse.rc
|
||||
|
||||
!IF "$(CFG)" == "cbrowse - Win32 Release"
|
||||
|
||||
!ELSEIF "$(CFG)" == "cbrowse - Win32 Debug"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
|
@ -45,6 +45,15 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDR_MAINFRAME ICON DISCARDABLE "res\\cbrowse.ico"
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
@ -82,15 +91,6 @@ END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Icon
|
||||
//
|
||||
|
||||
// Icon with lowest ID value placed first to ensure application icon
|
||||
// remains consistent on all systems.
|
||||
IDR_MAINFRAME ICON DISCARDABLE "res\\cbrowse.ico"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Dialog
|
||||
@ -107,12 +107,12 @@ BEGIN
|
||||
CONTROL "",IDC_BROWSER_MARKER,"Static",SS_BLACKFRAME,7,24,310,
|
||||
205
|
||||
PUSHBUTTON "Run",IDC_RUNTEST,325,296,50,14,WS_DISABLED
|
||||
LISTBOX IDC_LISTMESSAGES,7,247,310,63,LBS_SORT |
|
||||
LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
|
||||
LISTBOX IDC_LISTMESSAGES,7,247,310,63,LBS_NOINTEGRALHEIGHT |
|
||||
WS_VSCROLL | WS_TABSTOP
|
||||
LTEXT "Messages:",IDC_STATIC,7,233,110,11
|
||||
CONTROL "Tree1",IDC_TESTLIST,"SysTreeView32",TVS_HASBUTTONS |
|
||||
TVS_HASLINES | TVS_LINESATROOT | TVS_SHOWSELALWAYS |
|
||||
WS_BORDER | WS_TABSTOP,330,16,134,222
|
||||
TVS_TRACKSELECT | WS_BORDER | WS_TABSTOP,330,16,134,222
|
||||
GROUPBOX "Tests",IDC_STATIC,324,7,146,237
|
||||
COMBOBOX IDC_URL,45,7,180,52,CBS_DROPDOWNLIST | WS_VSCROLL |
|
||||
WS_TABSTOP
|
||||
|
Loading…
Reference in New Issue
Block a user