/*======================================================================================// | Process Control // | // |Copyright (c) 1998 Sequent Computer Systems, Incorporated. All rights reserved. // | // |File Name: ManagementRuleWizards.h // | // |Description: Implementation of management rule wizards // | // |Created: Paul Skoglund 09-1998 // | // |Rev History: // | // |=======================================================================================*/ #ifndef __MANAGEMENTRULEWIZARDS_H__ #define __MANAGEMENTRULEWIZARDS_H__ #include "BaseNode.h" #include "ppage.h" extern bool GetGrpNameList(PCid id, list &jobs); extern list *GetGrpNameList(PCid id); BOOL IsValidName(const CComBSTR &bStr, BOOL nullOK); extern BOOL ProcRuleWizard(int nTitle, const list &jobsdefined, PCProcDetail &out, const PCSystemParms &SystemParms, PROC_NAME *procName = NULL); extern BOOL GroupRuleWizard(int nTitle, PCJobDetail &out, const PCSystemParms &SystemParms, JOB_NAME *jobName = NULL); class CProcNameWiz : public CMySnapInPropertyWizardImpl { public : CProcNameWiz(WIZ_POSITION pos, int nTitle, PCProcDetail *ProcDetail); ~CProcNameWiz(); enum { IDD = IDD_PROCNAME_WIZ }; enum { ID_HeaderTitle = IDS_PROCESSALIAS_HDRTITLE }; enum { ID_HeaderSubTitle = IDS_PROCESSALIAS_HDRSUBTITLE }; BEGIN_MSG_MAP(CProcNameWiz) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MESSAGE_HANDLER(WM_HELP, OnWMHelp) CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl) END_MSG_MAP() LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); BOOL UpdateData(BOOL bSaveAndValidate = TRUE); BOOL OnWizardNext(); void SetReadOnly() { m_bReadOnly = TRUE;} void SetNoNameChange() { m_bNoNameChange = TRUE;} private: PCProcDetail *m_pProcDetail; BOOL m_bReadOnly; BOOL m_bNoNameChange; }; class CProcGrpMemberWiz : public CMySnapInPropertyWizardImpl { public : CProcGrpMemberWiz(WIZ_POSITION pos, int nTitle, PCProcDetail *ProcDetail, const list &jobsdefined); ~CProcGrpMemberWiz(); enum { IDD = IDD_PROCJOBMEMBER_WIZ }; enum { ID_HeaderTitle = IDS_GRPMEM_HDRTITLE }; enum { ID_HeaderSubTitle = IDS_GRPMEM_HDRSUBTITLE }; BEGIN_MSG_MAP(CProcGrpMemberWiz) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MESSAGE_HANDLER(WM_HELP, OnWMHelp) COMMAND_HANDLER(IDC_JOBMEMBER_CHK, BN_CLICKED, OnJobChk) CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl) END_MSG_MAP() LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnJobChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); BOOL UpdateData(BOOL bSaveAndValidate = TRUE); BOOL OnWizardNext(); void SetReadOnly() { m_bReadOnly = TRUE;} private: PCProcDetail *m_pProcDetail; BOOL m_bReadOnly; const list &m_JobsExisting; }; class CAffinityWiz : public CMySnapInPropertyWizardImpl { public : CAffinityWiz(WIZ_POSITION pos, int nTitle, PCProcDetail *ProcDetail, AFFINITY ProcessorMask = 0xFFffFFff); CAffinityWiz(WIZ_POSITION pos, int nTitle, PCJobDetail *JobDetail, AFFINITY ProcessorMask = 0xFFffFFff); ~CAffinityWiz(); enum { IDD = IDD_AFFINITY_WIZ }; enum { ID_HeaderTitle = IDS_AFFINITY_HDRTITLE }; enum { ID_HeaderSubTitle = IDS_AFFINITY_HDRSUBTITLE }; BEGIN_MSG_MAP(CAffinityWiz) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MESSAGE_HANDLER(WM_HELP, OnWMHelp) COMMAND_RANGE_HANDLER(IDC_AFFINITY1, IDC_AFFINITY64, OnAffinityEdit) COMMAND_HANDLER(IDC_AFFINITY_CHK, BN_CLICKED, OnChk) CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl) END_MSG_MAP() LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnAffinityEdit(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); LRESULT OnChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); BOOL UpdateData(BOOL bSaveAndValidate = TRUE); BOOL OnWizardNext(); BOOL OnSetActive(); void SetReadOnly() { m_bReadOnly = TRUE;} private: typedef enum _PageType { PROCESS_PAGE, JOB_PAGE, } PageType; PageType m_PageType; PCProcDetail *m_pProcDetail; PCJobDetail *m_pJobDetail; BOOL m_bReadOnly; AFFINITY m_ProcessorMask; void Initialize(); void ApplyControlEnableRules(BOOL bForceDisable); }; class CPriorityWiz : public CMySnapInPropertyWizardImpl { public : CPriorityWiz(WIZ_POSITION pos, int nTitle, PCProcDetail *ProcDetail); CPriorityWiz(WIZ_POSITION pos, int nTitle, PCJobDetail *JobDetail); ~CPriorityWiz(); enum { IDD = IDD_PRIORITY_WIZ }; enum { ID_HeaderTitle = IDS_PRIORITY_HDRTITLE }; enum { ID_HeaderSubTitle = IDS_PRIORITY_HDRSUBTITLE }; BEGIN_MSG_MAP(CPriorityWiz) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MESSAGE_HANDLER(WM_HELP, OnWMHelp) COMMAND_HANDLER(IDC_PRIORITY_CHK, BN_CLICKED, OnChk) CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl) END_MSG_MAP() LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); BOOL UpdateData(BOOL bSaveAndValidate = TRUE); BOOL OnWizardNext(); BOOL OnSetActive(); void SetReadOnly() { m_bReadOnly = TRUE;} private: typedef enum _PageType { PROCESS_PAGE, JOB_PAGE, } PageType; PageType m_PageType; PCProcDetail *m_pProcDetail; PCJobDetail *m_pJobDetail; BOOL m_bReadOnly; void Initialize(); void ApplyControlEnableRules(BOOL bForceDisable); }; class CJobNameWiz : public CMySnapInPropertyWizardImpl { public : CJobNameWiz(WIZ_POSITION pos, int nTitle, PCJobDetail *JobDetail); ~CJobNameWiz(); enum { IDD = IDD_JOBNAME_WIZ }; enum { ID_HeaderTitle = IDS_GRPNAME_HDRTITLE }; enum { ID_HeaderSubTitle = IDS_GRPNAME_HDRSUBTITLE }; BEGIN_MSG_MAP(CJobNameWiz) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MESSAGE_HANDLER(WM_HELP, OnWMHelp) CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl) END_MSG_MAP() LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); BOOL UpdateData(BOOL bSaveAndValidate = TRUE); BOOL OnWizardNext(); void SetReadOnly() { m_bReadOnly = TRUE;} void SetNoNameChange() { m_bNoNameChange = TRUE;} private: PCJobDetail *m_pJobDetail; BOOL m_bReadOnly; BOOL m_bNoNameChange; }; class CSchedulingClassWiz : public CMySnapInPropertyWizardImpl { public : CSchedulingClassWiz(WIZ_POSITION pos, int nTitle, SCHEDULING_CLASS *sclass, bool *sclasschk); ~CSchedulingClassWiz(); enum { IDD = IDD_SCHEDULING_CLASS_WIZ }; enum { ID_HeaderTitle = IDS_SCHEDCLASS_HDRTITLE }; enum { ID_HeaderSubTitle = IDS_SCHEDCLASS_HDRSUBTITLE }; BEGIN_MSG_MAP(CSchedulingClassWiz) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MESSAGE_HANDLER(WM_HELP, OnWMHelp) COMMAND_HANDLER(IDC_SCHEDULING_CHK, BN_CLICKED, OnChk) CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl) END_MSG_MAP() LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); BOOL UpdateData(BOOL bSaveAndValidate = TRUE); BOOL OnWizardNext(); void SetReadOnly() { m_bReadOnly = TRUE;} private: bool &m_schedClasschk; SCHEDULING_CLASS &m_schedClass; BOOL m_bReadOnly; }; class CWorkingSetWiz : public CMySnapInPropertyWizardImpl { public : CWorkingSetWiz(WIZ_POSITION pos, int nTitle, PCProcDetail *ProcDetail); CWorkingSetWiz(WIZ_POSITION pos, int nTitle, PCJobDetail *JobDetail); ~CWorkingSetWiz(); enum { IDD = IDD_MEMORY_WS_WIZ }; enum { ID_HeaderTitle = IDS_WSET_HDRTITLE }; enum { ID_HeaderSubTitle = IDS_WSET_HDRSUBTITLE }; BEGIN_MSG_MAP(CWorkingSetWiz) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MESSAGE_HANDLER(WM_HELP, OnWMHelp) NOTIFY_HANDLER (IDC_MINWS_SPIN, UDN_DELTAPOS, OnSpin) NOTIFY_HANDLER (IDC_MAXWS_SPIN, UDN_DELTAPOS, OnSpin) COMMAND_HANDLER(IDC_WORKINGSET_CHK, BN_CLICKED, OnChk) CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl) END_MSG_MAP() LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnSpin(int idCtrl, LPNMHDR pnmh, BOOL& bHandled); LRESULT OnChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); BOOL Validate(BOOL bSave = FALSE); BOOL UpdateData(BOOL bSaveAndValidate = TRUE); BOOL OnWizardNext(); BOOL OnSetActive(); void SetReadOnly() { m_bReadOnly = TRUE;} private: PCProcDetail *m_pProcDetail; PCJobDetail *m_pJobDetail; BOOL m_bReadOnly; void Initialize(); void ApplyControlEnableRules(BOOL bForceDisable); }; class CCommittedMemoryWiz : public CMySnapInPropertyWizardImpl { public : CCommittedMemoryWiz(WIZ_POSITION pos, int nTitle, MEMORY_VALUE *procmemorylimit, bool *procmemorylimitchk, MEMORY_VALUE *jobmemorylimit, bool *jobmemorylimitchk); ~CCommittedMemoryWiz(); enum { IDD = IDD_MEMORY_COMMIT_WIZ }; enum { ID_HeaderTitle = IDS_CMEM_HDRTITLE }; enum { ID_HeaderSubTitle = IDS_CMEM_HDRSUBTITLE }; BEGIN_MSG_MAP(CCommittedMemoryWiz) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MESSAGE_HANDLER(WM_HELP, OnWMHelp) NOTIFY_HANDLER (IDC_PROC_SPIN, UDN_DELTAPOS, OnSpin) NOTIFY_HANDLER (IDC_JOB_SPIN, UDN_DELTAPOS, OnSpin) COMMAND_HANDLER(IDC_PROCMEMORY_CHK, BN_CLICKED, OnChk) COMMAND_HANDLER(IDC_JOBMEMORY_CHK, BN_CLICKED, OnChk) CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl) END_MSG_MAP() LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnSpin(int idCtrl, LPNMHDR pnmh, BOOL& bHandled); LRESULT OnChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); BOOL Validate(BOOL bSave = FALSE); BOOL UpdateData(BOOL bSaveAndValidate = TRUE); BOOL OnWizardNext(); void SetReadOnly() { m_bReadOnly = TRUE;} private: bool &m_procmemorylimitchk; MEMORY_VALUE &m_procmemorylimit; bool &m_jobmemorylimitchk; MEMORY_VALUE &m_jobmemorylimit; BOOL m_bReadOnly; }; class CProcCountWiz : public CMySnapInPropertyWizardImpl { public : CProcCountWiz(WIZ_POSITION pos, int nTitle, PROC_COUNT *processcount, bool *processcountchk); ~CProcCountWiz(); enum { IDD = IDD_PROC_COUNT_WIZ }; enum { ID_HeaderTitle = IDS_PROCCOUNT_HDRTITLE }; enum { ID_HeaderSubTitle = IDS_PROCCOUNT_HDRSUBTITLE }; BEGIN_MSG_MAP(CProcCountWiz) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MESSAGE_HANDLER(WM_HELP, OnWMHelp) COMMAND_HANDLER(IDC_PROCESSCOUNT_CHK, BN_CLICKED, OnChk) CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl) END_MSG_MAP() LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); BOOL Validate(BOOL bSave = FALSE); BOOL UpdateData(BOOL bSaveAndValidate = TRUE); BOOL OnWizardNext(); void SetReadOnly() { m_bReadOnly = TRUE;} private: bool &m_processcountchk; PROC_COUNT &m_processcount; BOOL m_bReadOnly; }; class CTimeWiz : public CMySnapInPropertyWizardImpl { public : CTimeWiz(WIZ_POSITION pos, int nTitle, TIME_VALUE *procusertime, bool *procusertimechk, TIME_VALUE *jobusertime, bool *jobusertimechk, bool *jobmsgontimelimit); ~CTimeWiz(); enum { IDD = IDD_TIME_WIZ }; enum { ID_HeaderTitle = IDS_CPUTIME_HDRTITLE }; enum { ID_HeaderSubTitle = IDS_CPUTIME_HDRSUBTITLE }; BEGIN_MSG_MAP(CTimeWiz) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MESSAGE_HANDLER(WM_HELP, OnWMHelp) COMMAND_HANDLER(IDC_PROCUSERTIME_CHK, BN_CLICKED, OnChk) COMMAND_HANDLER(IDC_JOBUSERTIME_CHK, BN_CLICKED, OnChk) CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl) END_MSG_MAP() LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnChk(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); BOOL Validate(BOOL bSave = FALSE); BOOL UpdateData(BOOL bSaveAndValidate = TRUE); BOOL OnWizardNext(); void SetReadOnly() { m_bReadOnly = TRUE;} private: bool &m_procusertimechk; TIME_VALUE &m_procusertime; bool &m_jobusertimechk; TIME_VALUE &m_jobusertime; bool &m_jobmsgontimelimit; BOOL m_bReadOnly; }; class CAdvancedWiz : public CMySnapInPropertyWizardImpl { public : CAdvancedWiz(WIZ_POSITION pos, int nTitle, bool *endjob, bool *unhandledexcept); ~CAdvancedWiz(); enum { IDD = IDD_ADVANCED_WIZ }; enum { ID_HeaderTitle = IDS_ADVANCED_HDRTITLE }; enum { ID_HeaderSubTitle = IDS_ADVANCED_HDRSUBTITLE }; BEGIN_MSG_MAP(CAdvancedWiz) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MESSAGE_HANDLER(WM_HELP, OnWMHelp) CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl) END_MSG_MAP() LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); BOOL Validate(BOOL bSave = FALSE); BOOL UpdateData(BOOL bSaveAndValidate = TRUE); BOOL OnWizardNext(); void SetReadOnly() { m_bReadOnly = TRUE;} private: bool &m_endjob; bool &m_unhandledexcept; BOOL m_bReadOnly; }; class CAdvBreakawayWiz : public CMySnapInPropertyWizardImpl { public : CAdvBreakawayWiz(WIZ_POSITION pos, int nTitle, bool *breakaway, bool *silentbreakaway); ~CAdvBreakawayWiz(); enum { IDD = IDD_ADV_BREAKAWAY_WIZ}; enum { ID_HeaderTitle = IDS_ADV_BREAKAWAY_HDRTITLE }; enum { ID_HeaderSubTitle = IDS_ADV_BREAKAWAY_HDRSUBTITLE }; BEGIN_MSG_MAP(CAdvBreakawayWiz) MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) MESSAGE_HANDLER(WM_HELP, OnWMHelp) CHAIN_MSG_MAP(CMySnapInPropertyWizardImpl) END_MSG_MAP() LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnWMHelp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); BOOL Validate(BOOL bSave = FALSE); BOOL UpdateData(BOOL bSaveAndValidate = TRUE); BOOL OnWizardNext(); void SetReadOnly() { m_bReadOnly = TRUE;} private: bool &m_breakaway; bool &m_silentbreakaway; BOOL m_bReadOnly; }; #endif //ifdef __MANAGEMENTRULEWIZARDS_H__