|
|
#include "perfmon.h"
#include "report.h" // for ReportData
#include "utils.h"
#include "playback.h" // for PlayingBackLog
#include "pmhelpid.h" // Help IDs
extern BOOL LocalManualRefresh ; static DWORD iIntervalMSecs ;
void static OnInitDialog ( HWND hDlg, PREPORT pReport ) { int i;
for (i = 0 ; i < NumIntervals ; i++) CBAddInt (DialogControl (hDlg, IDD_REPORTOPTIONSINTERVAL), aiIntervals [i]) ;
DialogSetInterval (hDlg, IDD_REPORTOPTIONSINTERVAL, pReport->iIntervalMSecs) ;
LocalManualRefresh = pReport->bManualRefresh ;
if (LocalManualRefresh && !PlayingBackLog()) { DialogEnable (hDlg, IDD_REPORTOPTIONSINTERVAL, FALSE) ; DialogEnable (hDlg, IDD_REPORTOPTIONSINTERVALTEXT, FALSE) ; }
CheckRadioButton(hDlg, IDD_REPORTOPTIONSMANUALREFRESH, IDD_REPORTOPTIONSPERIODIC, LocalManualRefresh ? IDD_REPORTOPTIONSMANUALREFRESH : IDD_REPORTOPTIONSPERIODIC) ;
WindowCenter (hDlg) ;
}
INT_PTR FAR WINAPI ReportOptionsDlgProc ( HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam ) { BOOL bHandled ;
bHandled = TRUE ; switch (iMessage) { case WM_INITDIALOG: dwCurrentDlgID = HC_PM_idDlgOptionReport ; OnInitDialog (hDlg, (PREPORT) lParam) ; return (TRUE) ;
case WM_CLOSE: dwCurrentDlgID = 0 ; EndDialog (hDlg, 0) ; break ;
case WM_COMMAND: switch (wParam) { case IDD_OK: { FLOAT eIntervalMSec ;
eIntervalMSec = DialogFloat (hDlg, IDD_REPORTOPTIONSINTERVAL, NULL) ;
if (eIntervalMSec > MAX_INTERVALSEC || eIntervalMSec < MIN_INTERVALSEC) { DlgErrorBox (hDlg, ERR_BADTIMEINTERVAL) ; SetFocus (DialogControl (hDlg, IDD_REPORTOPTIONSINTERVAL)) ; EditSetTextEndPos (hDlg, IDD_REPORTOPTIONSINTERVAL) ; return (FALSE) ; break ; } eIntervalMSec = eIntervalMSec * (FLOAT) 1000.0 + (FLOAT) 0.5 ;
iIntervalMSecs = (DWORD) (eIntervalMSec); dwCurrentDlgID = 0 ; EndDialog (hDlg, 1) ; } break ;
case IDD_CANCEL: dwCurrentDlgID = 0 ; EndDialog (hDlg, 0) ; break ;
case IDD_REPORTOPTIONSPERIODIC : case IDD_REPORTOPTIONSMANUALREFRESH :
// check if the Manual refresh is currently checked.
// Then toggle the ManualRefresh button
LocalManualRefresh = (wParam == IDD_REPORTOPTIONSMANUALREFRESH) ;
CheckRadioButton(hDlg, IDD_REPORTOPTIONSMANUALREFRESH, IDD_REPORTOPTIONSPERIODIC, LocalManualRefresh ? IDD_REPORTOPTIONSMANUALREFRESH : IDD_REPORTOPTIONSPERIODIC ) ;
DialogEnable (hDlg, IDD_REPORTOPTIONSINTERVAL, !LocalManualRefresh) ; DialogEnable (hDlg, IDD_REPORTOPTIONSINTERVALTEXT, !LocalManualRefresh) ; break ;
case IDD_DISPLAYHELP: CallWinHelp (dwCurrentDlgID, hDlg) ; break ;
default: bHandled = FALSE ; break; } break;
default: bHandled = FALSE ; break ; }
return (bHandled) ; }
BOOL DisplayReportOptions ( HWND hWndParent, HWND hWndReport ) { PREPORT pReport ;
pReport = ReportData (hWndParent) ;
if (DialogBoxParam (hInstance, idDlgReportOptions, hWndParent, ReportOptionsDlgProc, (LPARAM) pReport)) { pReport->iIntervalMSecs = iIntervalMSecs ; if (LocalManualRefresh != pReport->bManualRefresh) { ToggleReportRefresh (hWndReport) ; } else { SetReportTimer (pReport) ; } }
return (TRUE) ; }
|