/*
	OnSelchangedTree()
*/
void CWallPaperDrawSettingsDlg::OnSelchangedTree(NMHDR* /*pNMHDR*/,LRESULT* pResult)
{
	if(m_bCreated)
	{
		HTREEITEM hCurrent = m_wndSettingsTree.GetSelectedItem();
		if(hCurrent)
		{
			CPropertyPage* pPropertyPage = (CPropertyPage*)m_wndSettingsTree.GetItemData(hCurrent);
			if(pPropertyPage)
			{
				m_ctrlSettingsArea.SetText("");	
				m_ctrlSettingsArea.ShowWindow(SW_HIDE);

				pPropertyPage->ShowWindow(SW_SHOW);
				pPropertyPage->OnSetActive();
			}
			else
			{
				m_ctrlSettingsArea.SetText(IDS_DIALOG_DRAW_SETTINGS_TITLE);	
				m_ctrlSettingsArea.ShowWindow(SW_SHOW);
			}
		}
	}

	*pResult = 0;
}
예제 #2
0
BOOL CPropertyPageHost::SetActivePage(int nIndex, BOOL bAndFocus)
{
	if (nIndex < 0 || nIndex >= m_aPages.GetSize())
		return FALSE;

	CPropertyPage* pPage = m_aPages[nIndex].pPage;

	if (!pPage)
		return FALSE;

	CWnd* pFocus = GetFocus();

	if (!EnsurePageCreated(nIndex))
		return FALSE;

	// hide the current page provided it's not just about to be reshown
	BOOL bSamePage = (m_nSelIndex == nIndex);

	if (!bSamePage)
	{
		if (m_nSelIndex != -1)
		{
			CPropertyPage* pCurPage = GetActivePage();
			ASSERT (pCurPage);

			if (pCurPage)
			{
				pCurPage->ShowWindow(SW_HIDE);
				pCurPage->OnKillActive();
			}
		}

		UpdatePageSize(nIndex);
		pPage->OnSetActive();
		pPage->ShowWindow(SW_SHOW);

		// move the focus to the first dlg ctrl
		if (bAndFocus)
		{
			CWnd* pCtrl = pPage->GetNextDlgTabItem(NULL);

			if (pCtrl)
				pCtrl->SetFocus();
		}
		else
			pFocus->SetFocus();

		m_nSelIndex = nIndex;
	}

	return TRUE;
}
/*
	OnSelchangedTree()
*/
void CWallPaperCrawlerSettingsDlg::OnSelchangedTree(NMHDR* /*pNMHDR*/,LRESULT* pResult)
{
    if(m_bCreated)
    {
        HTREEITEM hCurrent = m_wndSettingsTree.GetSelectedItem();
        if(hCurrent)
        {
            CPropertyPage* pPropertyPage = (CPropertyPage*)m_wndSettingsTree.GetItemData(hCurrent);
            if(pPropertyPage)
            {
                m_ctrlSettingsArea.SetText("");
                m_ctrlSettingsArea.ShowWindow(SW_HIDE);

                if(pPropertyPage->IsKindOf(RUNTIME_CLASS(CWallPaperCrawlerSettingsDomainDlg)))
                {
                    CWallPaperCrawlerSettingsDomainDlg* pPage = (CWallPaperCrawlerSettingsDomainDlg*)pPropertyPage;
                    pPage->SetDomainAcceptance(m_nDomainAcceptance);
                    pPage->SetIncludeSubDomains(m_bIncludeSubDomains);
                    pPage->SetDomainUseAlways(m_bDomainUseAlways);
                    pPage->SetSaveList(m_bSaveList);
                }
                else if(pPropertyPage->IsKindOf(RUNTIME_CLASS(CWallPaperCrawlerSettingsParentUrlDlg)))
                {
                    CWallPaperCrawlerSettingsParentUrlDlg* pPage = (CWallPaperCrawlerSettingsParentUrlDlg*)pPropertyPage;
                    pPage->SetParentUrlAcceptance(m_nParentUrlAcceptance);
                    pPage->SetParentUrlUseAlways(m_bParentUrlUseAlways);
                    pPage->SetSaveList(m_bSaveList);
                }
                else if(pPropertyPage->IsKindOf(RUNTIME_CLASS(CWallPaperCrawlerSettingsWildcardsDlg)))
                {
                    CWallPaperCrawlerSettingsWildcardsDlg* pPage = (CWallPaperCrawlerSettingsWildcardsDlg*)pPropertyPage;
                    pPage->SetSaveList(m_bSaveList);
                }

                pPropertyPage->ShowWindow(SW_SHOW);
                pPropertyPage->OnSetActive();
            }
            else
            {
                m_ctrlSettingsArea.SetText(IDS_DIALOG_CRAWLER_SETTINGS_TITLE);
                m_ctrlSettingsArea.ShowWindow(SW_SHOW);
            }
        }
    }

    *pResult = 0;
}