www.pudn.com > TreePropSheetEx.rar > PageCustomize.cpp
// PageCustomize.cpp : implementation file
//
/////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2004 by Yves Tkaczyk
// (http://www.tkaczyk.net - yves@tkaczyk.net)
//
// The contents of this file are subject to the Artistic License (the "License").
// You may not use this file except in compliance with the License.
// You may obtain a copy of the License at:
// http://www.opensource.org/licenses/artistic-license.html
//
// Documentation: http://www.codeproject.com/property/treepropsheetex.asp
// CVS tree: http://sourceforge.net/projects/treepropsheetex
//
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "TreePropSheetEx_Demo.h"
#include "PageCustomize.h"
#include "TreePropSheetEx.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPageCustomize property page
IMPLEMENT_DYNAMIC(CPageCustomize, CResizablePage)
CPageCustomize::CPageCustomize(TreePropSheet::CTreePropSheetEx& rSheet)
: CResizablePage(CPageCustomize::IDD),
m_sheet(rSheet)
{
m_psp.dwFlags &= (~PSP_HASHELP);
m_psp.dwFlags |= PSP_USEHICON;
HICON hIconTab = AfxGetApp()->LoadIcon( IDI_PREFERENCES );
m_psp.hIcon = hIconTab;
//{{AFX_DATA_INIT(CPageCustomize)
m_nTreeResizingMode = -1;
m_bRealtimeRefreshMode = FALSE;
m_bSkipEmptyPages = FALSE;
m_bResizableTree = FALSE;
//}}AFX_DATA_INIT
}
CPageCustomize::~CPageCustomize()
{
}
void CPageCustomize::DoDataExchange(CDataExchange* pDX)
{
CResizablePage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPageCustomize)
DDX_Radio(pDX, IDC_FIXED, m_nTreeResizingMode);
DDX_Check(pDX, IDC_REAL_TIME_REFRESH_MODE, m_bRealtimeRefreshMode);
DDX_Check(pDX, IDC_SKIP_EMPTY_PAGES, m_bSkipEmptyPages);
DDX_Check(pDX, IDC_CHK_TREE_RESIZABLE, m_bResizableTree);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPageCustomize, CResizablePage)
//{{AFX_MSG_MAP(CPageCustomize)
ON_BN_CLICKED(IDC_REAL_TIME_REFRESH_MODE, OnRealTimeRefreshMode)
ON_BN_CLICKED(IDC_SKIP_EMPTY_PAGES, OnSkipEmptyPages)
ON_BN_CLICKED(IDC_FIXED, OnChangeTreeResizingMode)
ON_BN_CLICKED(IDC_CHK_TREE_RESIZABLE, OnChkTreeResizable)
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDC_PROPORTIONAL, OnChangeTreeResizingMode)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPageCustomize message handlers
BOOL CPageCustomize::OnInitDialog()
{
CResizablePage::OnInitDialog();
m_nTreeResizingMode = m_sheet.GetTreeResizingMode()==TreePropSheet::TSM_Fixed?0:1;
m_bRealtimeRefreshMode = m_sheet.IsRealTimeSplitter();
m_bSkipEmptyPages = m_sheet.IsSkippingEmptyPages();
m_bResizableTree = m_sheet.IsTreeResizable();
UpdateData( FALSE );
// Preset layout
AddAnchor(IDC_RESIZING_FRAME, TOP_LEFT, TOP_RIGHT);
AddAnchor(IDC_FIXED, TOP_LEFT, TOP_LEFT);
AddAnchor(IDC_PROPORTIONAL, TOP_LEFT, TOP_LEFT);
AddAnchor(IDC_REFRESH_FRAME, TOP_LEFT, TOP_RIGHT);
AddAnchor(IDC_REAL_TIME_REFRESH_MODE, TOP_LEFT, TOP_LEFT);
AddAnchor(IDC_EMPTY_PAGES_FRAME, TOP_LEFT, TOP_RIGHT);
AddAnchor(IDC_SKIP_EMPTY_PAGES, TOP_LEFT, TOP_LEFT);
AddAnchor(IDC_CHK_TREE_RESIZABLE, TOP_LEFT, TOP_LEFT);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CPageCustomize::OnRealTimeRefreshMode()
{
UpdateData( TRUE );
m_sheet.SetRealTimeSplitter( m_bRealtimeRefreshMode?true:false );
}
void CPageCustomize::OnSkipEmptyPages()
{
UpdateData( TRUE );
m_sheet.SetSkipEmptyPages( m_bSkipEmptyPages?true:false );
}
void CPageCustomize::OnChangeTreeResizingMode()
{
UpdateData( TRUE );
m_sheet.SetTreeResizingMode( m_nTreeResizingMode?TreePropSheet::TSM_Proportional:TreePropSheet::TSM_Fixed );
}
void CPageCustomize::OnChkTreeResizable()
{
UpdateData( TRUE );
m_sheet.SetTreeIsResizable( m_bResizableTree?true:false );
}
HBRUSH CPageCustomize::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if( HasWhiteBackground() )
{
pDC->SetBkMode(TRANSPARENT);
return ::GetSysColorBrush( COLOR_WINDOW );
}
return CResizablePage::OnCtlColor(pDC, pWnd, nCtlColor);
}