// // proprun.cpp: local resources property sheet dialog proc // // Tab D // // Copyright Microsoft Corporation 2000 // nadima #include "stdafx.h" #define TRC_GROUP TRC_GROUP_UI #define TRC_FILE "proprun" #include #include "sh.h" #include "commctrl.h" #include "proprun.h" CPropRun* CPropRun::_pPropRunInstance = NULL; // // Controls that need to be disabled/enabled // during connection (for progress animation) // CTL_ENABLE connectingDisableCtlsPRun[] = { {IDC_CHECK_START_PROGRAM, FALSE}, {IDC_EDIT_STARTPROGRAM, FALSE}, {IDC_EDIT_WORKDIR, FALSE}, {IDC_STATIC_STARTPROGRAM, FALSE}, {IDC_STATIC_WORKDIR, FALSE}, }; const UINT numConnectingDisableCtlsPRun = sizeof(connectingDisableCtlsPRun)/ sizeof(connectingDisableCtlsPRun[0]); CPropRun::CPropRun(HINSTANCE hInstance, CTscSettings* pTscSet, CSH* pSh) { DC_BEGIN_FN("CPropRun"); _hInstance = hInstance; CPropRun::_pPropRunInstance = this; _pTscSet = pTscSet; _pSh = pSh; TRC_ASSERT(_pTscSet,(TB,_T("_pTscSet is null"))); TRC_ASSERT(_pSh,(TB,_T("pSh is null"))); DC_END_FN(); } CPropRun::~CPropRun() { CPropRun::_pPropRunInstance = NULL; } INT_PTR CALLBACK CPropRun::StaticPropPgRunDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { // // Delegate to appropriate instance (only works for single instance dialogs) // DC_BEGIN_FN("StaticDialogBoxProc"); DCINT retVal = 0; TRC_ASSERT(_pPropRunInstance, (TB, _T("run dialog has NULL static instance ptr\n"))); retVal = _pPropRunInstance->PropPgRunDialogProc( hwndDlg, uMsg, wParam, lParam); DC_END_FN(); return retVal; } INT_PTR CALLBACK CPropRun::PropPgRunDialogProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { DC_BEGIN_FN("PropPgRunDialogProc"); switch(uMsg) { case WM_INITDIALOG: { #ifndef OS_WINCE int i; #endif // // Position the dialog within the tab // SetWindowPos( hwndDlg, HWND_TOP, _rcTabDispayArea.left, _rcTabDispayArea.top, _rcTabDispayArea.right - _rcTabDispayArea.left, _rcTabDispayArea.bottom - _rcTabDispayArea.top, 0); // // Get settings // SetDlgItemText(hwndDlg, IDC_EDIT_STARTPROGRAM, (LPCTSTR) _pTscSet->GetStartProgram()); SetDlgItemText(hwndDlg, IDC_EDIT_WORKDIR, (LPCTSTR) _pTscSet->GetWorkDir()); CheckDlgButton(hwndDlg, IDC_CHECK_START_PROGRAM, _pTscSet->GetEnableStartProgram() ? BST_CHECKED : BST_UNCHECKED); EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT_STARTPROGRAM), _pTscSet->GetEnableStartProgram()); EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT_WORKDIR), _pTscSet->GetEnableStartProgram()); EnableWindow(GetDlgItem(hwndDlg, IDC_STATIC_STARTPROGRAM), _pTscSet->GetEnableStartProgram()); EnableWindow(GetDlgItem(hwndDlg, IDC_STATIC_WORKDIR), _pTscSet->GetEnableStartProgram()); _pSh->SH_ThemeDialogWindow(hwndDlg, ETDT_ENABLETAB); return TRUE; } break; //WM_INITDIALOG case WM_TSC_ENABLECONTROLS: { // // wParam is TRUE to enable controls, // FALSE to disable them // CSH::EnableControls( hwndDlg, connectingDisableCtlsPRun, numConnectingDisableCtlsPRun, wParam ? TRUE : FALSE); } break; case WM_SAVEPROPSHEET: //Intentional fallthru case WM_DESTROY: { // // Save page settings // BOOL fStartProgEnabled = IsDlgButtonChecked(hwndDlg, IDC_CHECK_START_PROGRAM); _pTscSet->SetEnableStartProgram(fStartProgEnabled); TCHAR szStartProg[MAX_PATH]; TCHAR szWorkDir[MAX_PATH]; GetDlgItemText(hwndDlg, IDC_EDIT_STARTPROGRAM, szStartProg, SIZECHAR(szStartProg)); GetDlgItemText(hwndDlg, IDC_EDIT_WORKDIR, szWorkDir, SIZECHAR(szWorkDir)); _pTscSet->SetStartProgram(szStartProg); _pTscSet->SetWorkDir(szWorkDir); } break; //WM_DESTROY case WM_COMMAND: { if(BN_CLICKED == HIWORD(wParam) && IDC_CHECK_START_PROGRAM == (int)LOWORD(wParam)) { BOOL fStartProgEnabled = IsDlgButtonChecked(hwndDlg, IDC_CHECK_START_PROGRAM); EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT_STARTPROGRAM), fStartProgEnabled); EnableWindow(GetDlgItem(hwndDlg, IDC_EDIT_WORKDIR), fStartProgEnabled); EnableWindow(GetDlgItem(hwndDlg, IDC_STATIC_STARTPROGRAM), fStartProgEnabled); EnableWindow(GetDlgItem(hwndDlg, IDC_STATIC_WORKDIR), fStartProgEnabled); _pTscSet->SetEnableStartProgram(fStartProgEnabled); } } break; } DC_END_FN(); return 0; }