Windows2003-3790/termsrv/newclient/clshell/proprun.cpp
2020-09-30 16:53:55 +02:00

207 lines
6.8 KiB
C++

//
// 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 <atrcapi.h>
#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;
}