www.pudn.com > bxt.zip > C2DPushGraphDlg.cpp


// C2DPushGraphDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "C2DPushGraph.h" 
#include "C2DPushGraphDlg.h" 
#include "CpuUsage.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
#define PUSHGRAPH_SYSTEM_LINE    0 
#define PUSHGRAPH_PROCESS_LINE   1 
 
///////////////////////////////////////////////////////////////////////////// 
// CC2DPushGraphDlg dialog 
 
CC2DPushGraphDlg::CC2DPushGraphDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CC2DPushGraphDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CC2DPushGraphDlg) 
	m_nGridSize = 15; 
	m_bShowGrid = TRUE; 
	m_bShowLabels = TRUE; 
	m_sInterval = 5; 
	m_nWaitTime = 250; 
	m_strMaxLabel = _T("100%"); 
	m_nMaxPeek = 100; 
	m_strMinLabel = _T("0%"); 
	m_nMinPeek = 0; 
	m_bLine0AsBar = FALSE; 
	m_bLine1AsBar = FALSE; 
	//}}AFX_DATA_INIT 
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); 
} 
 
void CC2DPushGraphDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CC2DPushGraphDlg) 
	DDX_Text(pDX, IDC_GRIDSIZE, m_nGridSize); 
	DDX_Check(pDX, IDC_SHOWGRID, m_bShowGrid); 
	DDX_Check(pDX, IDC_SHOWLABELS, m_bShowLabels); 
	DDX_Text(pDX, IDC_INTERVAL, m_sInterval); 
	DDX_Text(pDX, IDC_WAITTIME, m_nWaitTime); 
	DDV_MinMaxInt(pDX, m_nWaitTime, 25, 10000); 
	DDX_Text(pDX, IDC_MAXLABEL, m_strMaxLabel); 
	DDX_Text(pDX, IDC_MAXPEEK, m_nMaxPeek); 
	DDX_Text(pDX, IDC_MINLABEL, m_strMinLabel); 
	DDX_Text(pDX, IDC_MINPEEK, m_nMinPeek); 
	DDX_Check(pDX, IDC_LINE0_BAR, m_bLine0AsBar); 
	DDX_Check(pDX, IDC_LINE1_BAR, m_bLine1AsBar); 
	//}}AFX_DATA_MAP 
} 
 
BEGIN_MESSAGE_MAP(CC2DPushGraphDlg, CDialog) 
	//{{AFX_MSG_MAP(CC2DPushGraphDlg) 
	ON_WM_TIMER() 
	ON_BN_CLICKED(IDC_TEXTCOLOR, OnTextColor) 
	ON_BN_CLICKED(IDC_GRIDCOLOR, OnGridColor) 
	ON_BN_CLICKED(IDC_BGCOLOR, OnBGColor) 
	ON_BN_CLICKED(IDC_LINE0_COLOR, OnLine0Color) 
	ON_BN_CLICKED(IDC_LINE1_COLOR, OnLine1Color) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CC2DPushGraphDlg message handlers 
 
BOOL CC2DPushGraphDlg::OnInitDialog() 
{ 
	CDialog::OnInitDialog(); 
 
	SetIcon(m_hIcon, TRUE);			// Set big icon 
	SetIcon(m_hIcon, FALSE);		// Set small icon 
 
	m_PushGraph.CreateFromStatic(IDC_STATICGRAPH, this);	 
	m_PushGraph.ModifyStyle(0, WS_THICKFRAME);	 
	 
	m_PushGraph.AddLine( PUSHGRAPH_SYSTEM_LINE,  RGB(0, 255, 0)); 
	m_PushGraph.AddLine( PUSHGRAPH_PROCESS_LINE, RGB(255, 255, 0)); 
 
 
	OnOK(); // Emulate an Update click 
 
	return TRUE; 
} 
 
 
// =================================================================== 
 
void CC2DPushGraphDlg::OnTimer(UINT nIDEvent)  
{ 
	static CCpuUsage cpu, cpu2; 
 
	int nSystem_CPU_Usage  = cpu.GetCpuUsage(); 
	int nProcess_CPU_Usage = cpu2.GetCpuUsage(GetCurrentProcessId()); 
 
	m_PushGraph.Push(nSystem_CPU_Usage,  PUSHGRAPH_SYSTEM_LINE); 
	m_PushGraph.Push(nProcess_CPU_Usage, PUSHGRAPH_PROCESS_LINE);	 
	m_PushGraph.Update(); 
 
	CDialog::OnTimer(nIDEvent); 
} 
 
 
// =================================================================== 
 
void CC2DPushGraphDlg::OnOK()  
{ 
	UpdateData(); 
 
	KillTimer(0); 
	SetTimer(0, m_nWaitTime, NULL); 
	 
	m_PushGraph.ShowGrid( m_bShowGrid ? true : false ); 
	m_PushGraph.ShowLabels( m_bShowLabels ? true : false  ); 
 
	m_PushGraph.ShowAsBar(0, m_bLine0AsBar ? true : false ); 
	m_PushGraph.ShowAsBar(1, m_bLine1AsBar ? true : false ); 
 
	m_PushGraph.SetInterval( m_sInterval ); 
	m_PushGraph.SetGridSize( (USHORT)m_nGridSize ); 
 
	m_PushGraph.SetLabelForMax( m_strMaxLabel ); 
	m_PushGraph.SetLabelForMin( m_strMinLabel ); 
 
	m_PushGraph.SetPeekRange( m_nMinPeek, m_nMaxPeek );	 
	 
	 
	m_PushGraph.RedrawWindow(); 
} 
 
 
// =================================================================== 
 
void CC2DPushGraphDlg::OnTextColor()  
{ 
	CColorDialog dlg(m_PushGraph.GetTextColor()); 
 
	if (dlg.DoModal() == IDOK) 
	{ 
		m_PushGraph.SetTextColor(dlg.GetColor()); 
		m_PushGraph.RedrawWindow(); 
	} 
} 
 
 
// =================================================================== 
 
void CC2DPushGraphDlg::OnGridColor()  
{ 
	CColorDialog dlg(m_PushGraph.GetGridColor()); 
 
	if (dlg.DoModal() == IDOK) 
	{ 
		m_PushGraph.SetGridColor(dlg.GetColor()); 
		m_PushGraph.RedrawWindow(); 
	} 
} 
 
 
// =================================================================== 
 
void CC2DPushGraphDlg::OnBGColor()  
{ 
	CColorDialog dlg(m_PushGraph.GetBGColor()); 
 
	if (dlg.DoModal() == IDOK) 
	{ 
		m_PushGraph.SetBGColor(dlg.GetColor()); 
		m_PushGraph.RedrawWindow(); 
	} 
} 
 
 
// =================================================================== 
 
void CC2DPushGraphDlg::OnLine0Color()  
{ 
	CColorDialog dlg(m_PushGraph.GetLineColor(0)); 
 
	if (dlg.DoModal() == IDOK) 
	{ 
		m_PushGraph.SetLineColor(dlg.GetColor(), 0); 
		m_PushGraph.RedrawWindow(); 
	} 
} 
 
 
// =================================================================== 
 
void CC2DPushGraphDlg::OnLine1Color()  
{ 
	CColorDialog dlg(m_PushGraph.GetLineColor(1)); 
 
	if (dlg.DoModal() == IDOK) 
	{ 
		m_PushGraph.SetLineColor(dlg.GetColor(), 1); 
		m_PushGraph.RedrawWindow(); 
	} 
}