/***************************************************************************/
/* NOTE: */
/* This document is copyright (c) by Oz Solomonovich. All non-commercial */
/* use is allowed, as long as this document is not altered in any way, and */
/* due credit is given. */
/***************************************************************************/
// FileSummaryDlg.cpp : implementation file
//
#include "stdafx.h"
#include "linecount.h"
#include "Parser.h"
#include "FileSummaryDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFileSummaryDlg dialog
CFileSummaryDlg::CFileSummaryDlg(proj_stats *pStats,
CWnd* pParent /*=NULL*/) : CDialog(CFileSummaryDlg::IDD, pParent),
m_pStats(pStats)
{
//{{AFX_DATA_INIT(CFileSummaryDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CFileSummaryDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFileSummaryDlg)
DDX_Control(pDX, IDC_LIST, m_ListCtrl);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFileSummaryDlg, CDialog)
//{{AFX_MSG_MAP(CFileSummaryDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFileSummaryDlg message handlers
BOOL CFileSummaryDlg::OnInitDialog()
{
CDialog::OnInitDialog();
int i;
LPCTSTR sColumns[] = {_T("File Extension"), _T("Count"), _T("%")};
int lColumns[] = {0, 15, 25};
LVCOLUMN lvc;
lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
for(i = 0; i < countof(sColumns); i++)
{
lvc.iSubItem = i;
lvc.pszText = (char *)sColumns[i];
lvc.cx = m_ListCtrl.GetStringWidth(lvc.pszText) + lColumns[i] + 15;
if (lvc.cx < 40) lvc.cx = 40;
lvc.fmt = (i >= 1)? LVCFMT_RIGHT : LVCFMT_LEFT;
m_ListCtrl.InsertColumn(i, &lvc);
}
file_info *pfi = m_pStats->pfi;
LV_ITEM lvi;
CString cStr, cExt;
POSITION p;
int iCount;
p = m_pStats->mapExtCount.GetStartPosition();
i = 0;
while (p)
{
m_pStats->mapExtCount.GetNextAssoc(p, cExt, iCount);
lvi.mask = LVIF_TEXT;
lvi.iItem = m_ListCtrl.GetItemCount();
lvi.iSubItem = 0;
lvi.pszText = (LPTSTR)(LPCTSTR)cExt;
i = m_ListCtrl.InsertItem(&lvi);
/* count */
cStr.Format("%d", iCount);
m_ListCtrl.SetItemText(i, 1, CString(cStr));
/* percent */
cStr.Format("%0.1f", float(iCount * 100) / m_pStats->iCount);
m_ListCtrl.SetItemText(i, 2, cStr);
i++;
}
return TRUE;
}