⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 options.cpp

📁 一个统计文件大小和程序信息的插件程序(vc或vc.net下使用)
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    m_ExtList.SetColumnWidth(1, LVSCW_AUTOSIZE);

    OnSelChange();

	return TRUE;
}

void CExtensionsPage::OnCancel()
{
    CAutoPropPage::OnCancel();
    CParserManager::Get().SetState(m_OldPMState);
}

void CExtensionsPage::OnSelChange() 
{
    const bool bHasSelected = m_ExtList.GetFirstSelectedItemPosition() != NULL;

    GetDlgItem(IDC_DELETEEXT)->EnableWindow(bHasSelected);
}

void CExtensionsPage::OnItemchangedExtList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;

    OnSelChange();
	
	*pResult = 0;
}

void CExtensionsPage::OnResetList() 
{
    MarkUndo();
    CParserManager::Get().ResetPairs();
    FillExtList();
    SetModified(TRUE);
}

void CExtensionsPage::MarkUndo()
{
    CParserManager::Get().GetState(m_LastUndoVal);
    m_pUndoWnd->SetWindowText("Und&o");
    m_pUndoWnd->EnableWindow(TRUE);
}

void CExtensionsPage::OnInsertext() 
{
    CInsertExtDlg dlg;
    
    if (dlg.DoModal() == IDOK)
    {
        MarkUndo();
        CParserManager::parser_fileext_pair tmp;
        tmp.sExt = dlg.m_Ext;
        tmp.pParser = dlg.m_pParser;
        CParserManager::Get().AddPair(tmp);
        FillExtList();
    }
}

void CExtensionsPage::OnDeleteext() 
{
    MarkUndo();
    int ndx = -1;
    for (;;)
    {
        ndx = m_ExtList.GetNextItem(ndx, LVNI_SELECTED);
        if (ndx < 0) break;
        CParserManager::Get().RemovePair(m_ExtList.GetItemText(ndx, 0));
    }
    FillExtList();
}

void CExtensionsPage::OnUndo() 
{
    undo_t tmpState;
    CParserManager::Get().GetState(tmpState);
    CParserManager::Get().SetState(m_LastUndoVal);
    m_LastUndoVal = tmpState;
    FillExtList();
    m_pUndoWnd->SetWindowText("Red&o");
}

int CExtensionsPage::OnVKeyToItem(UINT nKey, CListBox* pListBox, UINT nIndex) 
{
//    return HandlerImpl_OnVKeyToItem(nKey, pListBox, nIndex);
    return 0;
}

void CExtensionsPage::InsertPair(CParserManager::parser_fileext_pair& pair)
{
    int ndx = m_ExtList.InsertItem(0, pair.sExt);
    m_ExtList.SetItemData(ndx, (DWORD)pair.pParser);
    m_ExtList.SetItem(ndx, 1, LVIF_TEXT, 
        CString(MAKEINTRESOURCE(pair.pParser->GetParserNameResourceID())), 
        0, 0, 0, 0);
}


void CExtensionsPage::FillExtList()
{
    CParserManager::PairArray arr;
    CParserManager::Get().GetPairs(arr);

    m_ExtList.DeleteAllItems();

    for (int i = 0; i < arr.GetSize(); ++i)
    {
        InsertPair(arr[i]);
    }

    OnSelChange();
    SetModified();
}



/////////////////////////////////////////////////////////////////////////////
// CStatsPage property page

IMPLEMENT_DYNCREATE(CStatsPage, CAutoPropPage)

BEGIN_HELP_IDS(CStatsPage)
    IDC_STATIC_DEFAULT_FILTER,  IDC_DEFAULT_FILTER,
    IDC_STATIC_DEFAULT_FILTER2, IDC_DEFAULT_FILTER

END_HELP_IDS()

CStatsPage::CStatsPage() : CAutoPropPage(CStatsPage::IDD)
{
	//{{AFX_DATA_INIT(CStatsPage)
	m_bCheckComments = FALSE;
	m_bCountBlanks = FALSE;
	m_bIncBad_Export = FALSE;
	m_bIncBad_Grid = FALSE;
	m_bIncFilter_Export = FALSE;
	m_bIncFilter_Grid = FALSE;
	//}}AFX_DATA_INIT
    
    m_iHelpID = IDH_OPT_STATS;

    varpair vars[] = 
    {
        { &m_bCountBlanks,      &cfg_bProcessBlanks   },
        { &m_bCheckComments,    &cfg_bProcessComments },
        { &m_iDefFilter,        &cfg_iDefaultFilter   },
        { &m_sfFiltered,        &cfg_ShowFiltered     },
        { &m_sfBadFiles,        &cfg_ShowBadFiles     }
    };

    InitAutoVars(countof(vars), vars);
}

CStatsPage::~CStatsPage()
{
}

void CStatsPage::DoDataExchange(CDataExchange* pDX)
{
	CAutoPropPage::DoDataExchange(pDX);

    if (!pDX->m_bSaveAndValidate)
    {
        m_bIncBad_Grid      = CHK_FLAG(m_sfBadFiles, SF_GRID);
        m_bIncBad_Export    = CHK_FLAG(m_sfBadFiles, SF_EXPORT);
        m_bIncFilter_Grid   = CHK_FLAG(m_sfFiltered, SF_GRID);
        m_bIncFilter_Export = CHK_FLAG(m_sfFiltered, SF_EXPORT);
    }

	//{{AFX_DATA_MAP(CStatsPage)
	DDX_Control(pDX, IDC_DEFAULT_FILTER, m_DefFilter);
	DDX_Check(pDX, IDC_CHECKCOMMENTS, m_bCheckComments);
	DDX_Check(pDX, IDC_COUNTBLANK, m_bCountBlanks);
	DDX_Check(pDX, IDC_INCBAD_EXPORT, m_bIncBad_Export);
	DDX_Check(pDX, IDC_INCBAD_GRID, m_bIncBad_Grid);
	DDX_Check(pDX, IDC_INCFILTER_EXPORT, m_bIncFilter_Export);
	DDX_Check(pDX, IDC_INCFILTER_GRID, m_bIncFilter_Grid);
	//}}AFX_DATA_MAP

    if (!pDX->m_bSaveAndValidate)
    {
        m_DefFilter.SetCurSel(m_iDefFilter);
    }
    else
    {
        m_iDefFilter = m_DefFilter.GetCurSel();
        if (m_iDefFilter < 0  ||  
            m_iDefFilter > m_DefFilter.GetCount())
        {
            m_iDefFilter = 0;
        }

        m_sfBadFiles = 0;
        if (m_bIncBad_Export) m_sfBadFiles |= SF_EXPORT;
        if (m_bIncBad_Grid)   m_sfBadFiles |= SF_GRID;

        m_sfFiltered = 0;
        if (m_bIncFilter_Export) m_sfFiltered |= SF_EXPORT;
        if (m_bIncFilter_Grid)   m_sfFiltered |= SF_GRID;
    }
}

BEGIN_MESSAGE_MAP(CStatsPage, CAutoPropPage)
	//{{AFX_MSG_MAP(CStatsPage)
	ON_BN_CLICKED(IDC_CHECKCOMMENTS, DoModified)
	ON_BN_CLICKED(IDC_COUNTBLANK, DoModified)
	ON_CBN_SELCHANGE(IDC_DEFAULT_FILTER, DoModified)
	ON_BN_CLICKED(IDC_INCFILTER_GRID, DoModified)
	ON_BN_CLICKED(IDC_INCFILTER_EXPORT, DoIncFilterExport)
	ON_BN_CLICKED(IDC_INCBAD_GRID, DoModified)
	ON_BN_CLICKED(IDC_INCBAD_EXPORT, OnIncBadExport)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CStatsPage message handlers

BOOL CStatsPage::OnInitDialog() 
{
	CAutoPropPage::OnInitDialog();

    PopuplateDefaultFilters(g_pWorkspaceInfo);

	return TRUE;
}

void CStatsPage::PopuplateDefaultFilters(IWorkspaceInfo *pWI)
{
    const int nWorkspaceFilters = pWI->GetWorkspaceFilterCount();
    ASSERT(nWorkspaceFilters > 0);
    for (int i = 0; i < nWorkspaceFilters; ++i)
    {
        CString cStr;
        cStr = pWI->GetWorkspaceFilterName(i);
        cStr.Insert(0, '<');
        cStr += '>';

        const int ndx = m_DefFilter.AddString(cStr);
        m_DefFilter.SetItemData(ndx, i);
    }
    UpdateData(FALSE);
}


void CStatsPage::DoModified() 
{
    SetModified();
}

void CStatsPage::DoIncFilterExport() 
{
    bool bDoModify = true;
	UpdateData();
    if (m_bIncFilter_Export)
    {
        if (AfxMessageBox(IDS_WARN_SPECIAL_FILES_IN_EXPORT, 
            MB_YESNO | MB_ICONWARNING) != IDYES)
        {
            m_sfFiltered &= ~SF_EXPORT;
            UpdateData(FALSE);
            bDoModify = false;
        }
    }
    if (bDoModify) DoModified();
}

void CStatsPage::OnIncBadExport() 
{
    bool bDoModify = true;
	UpdateData();
    if (m_bIncBad_Export)
    {
        if (AfxMessageBox(IDS_WARN_SPECIAL_FILES_IN_EXPORT, 
            MB_YESNO | MB_ICONWARNING) != IDYES)
        {
            m_sfBadFiles &= ~SF_EXPORT;
            UpdateData(FALSE);
            bDoModify = false;
        }
    }
    if (bDoModify) DoModified();
}


/////////////////////////////////////////////////////////////////////////////
// COptionsPage property page

IMPLEMENT_DYNCREATE(COptionsPage, CAutoPropPage)

BEGIN_HELP_IDS(COptionsPage)
    IDC_STYLESHEET,             IDC_XSL_FIXED
END_HELP_IDS()

COptionsPage::COptionsPage() : CAutoPropPage(COptionsPage::IDD)
{
	//{{AFX_DATA_INIT(COptionsPage)
	m_XSLType = -1;
	m_sXSLName = _T("");
	//}}AFX_DATA_INIT
    
    m_iHelpID = IDH_OPT_OPT;

    varpair vars[] = 
    {
        { &m_XSLType,           (int *)&cfg_XSLTUsage },
    };
    strpair strs[] =
    {
        { &m_sXSLName,          &cfg_sXSLTTemplate    }
    };

    InitAutoVars(countof(vars), vars);
    InitAutoStrs(countof(strs), strs);
}

COptionsPage::~COptionsPage()
{
}

void COptionsPage::DoDataExchange(CDataExchange* pDX)
{
	CAutoPropPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(COptionsPage)
	DDX_Radio(pDX, IDC_XSL_NONE, m_XSLType);
	DDX_Text(pDX, IDC_STYLESHEET, m_sXSLName);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(COptionsPage, CAutoPropPage)
	//{{AFX_MSG_MAP(COptionsPage)
	ON_BN_CLICKED(IDC_XSL_NONE, OnXSLSel)
	ON_BN_CLICKED(IDC_XSL_SAMENAME, OnXSLSel)
	ON_EN_CHANGE(IDC_STYLESHEET, DoModified)
	ON_BN_CLICKED(IDC_XSL_FIXED, OnXSLSel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// COptionsPage message handlers


BOOL COptionsPage::OnInitDialog() 
{
	CAutoPropPage::OnInitDialog();

    OnXSLSel();

	return TRUE;
}

void COptionsPage::DoModified() 
{
    SetModified();
}

void COptionsPage::OnXSLSel() 
{
    UpdateData();
    DoModified();
    GetDlgItem(IDC_STYLESHEET)->EnableWindow(m_XSLType == 2);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -