// EightBall2Ppg.cpp : Implementation of the CEightBall2PropPage property page class.

#include "stdafx.h"
#include "EightBall2.h"
#include "EightBall2Ppg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


IMPLEMENT_DYNCREATE(CEightBall2PropPage, COlePropertyPage)


/////////////////////////////////////////////////////////////////////////////
// Message map

BEGIN_MESSAGE_MAP(CEightBall2PropPage, COlePropertyPage)
	//{{AFX_MSG_MAP(CEightBall2PropPage)
	// NOTE - ClassWizard will add and remove message map entries
	//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// Initialize class factory and guid

IMPLEMENT_OLECREATE_EX(CEightBall2PropPage, "EIGHTBALL2.EightBall2PropPage.1",
	0x46f0c4ee, 0x2aaa, 0x42f5, 0x85, 0xc1, 0xb9, 0x23, 0x51, 0x6a, 0xb4, 0xff)


/////////////////////////////////////////////////////////////////////////////
// CEightBall2PropPage::CEightBall2PropPageFactory::UpdateRegistry -
// Adds or removes system registry entries for CEightBall2PropPage

BOOL CEightBall2PropPage::CEightBall2PropPageFactory::UpdateRegistry(BOOL bRegister)
{
	if (bRegister)
		return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(),
			m_clsid, IDS_EIGHTBALL2_PPG);
	else
		return AfxOleUnregisterClass(m_clsid, NULL);
}


/////////////////////////////////////////////////////////////////////////////
// CEightBall2PropPage::CEightBall2PropPage - Constructor

CEightBall2PropPage::CEightBall2PropPage() :
	COlePropertyPage(IDD, IDS_EIGHTBALL2_PPG_CAPTION)
{
	//{{AFX_DATA_INIT(CEightBall2PropPage)
	m_caption = _T("");
	m_majorGridWidth = 0;
	m_majorPitchGridIncrement = 0.0;
	m_majorRollGridIncrement = 0.0;
	m_maxPitchAngle = 0.0;
	m_maxPitchGridAngle = 0.0;
	m_maxRollAngle = 0.0;
	m_minorGridWidth = 0;
	m_minorPitchGridIncrement = 0.0;
	m_minorRollGridIncrement = 0.0;
	m_outerRingWidth = 0;
	//}}AFX_DATA_INIT
}


/////////////////////////////////////////////////////////////////////////////
// CEightBall2PropPage::DoDataExchange - Moves data between page and properties

void CEightBall2PropPage::DoDataExchange(CDataExchange* pDX)
{
	//{{AFX_DATA_MAP(CEightBall2PropPage)
	DDP_Text(pDX, IDC_CAPTION, m_caption, _T("Caption") );
	DDX_Text(pDX, IDC_CAPTION, m_caption);
	DDV_MaxChars(pDX, m_caption, 20);
	DDP_Text(pDX, IDC_MAJORGRIDWIDTH, m_majorGridWidth, _T("MajorGridWidth") );
	DDX_Text(pDX, IDC_MAJORGRIDWIDTH, m_majorGridWidth);
	DDV_MinMaxInt(pDX, m_majorGridWidth, 1, 5);
	DDP_Text(pDX, IDC_MAJORPITCHGRIDINCREMENT, m_majorPitchGridIncrement, _T("MajorPitchGridIncrement") );
	DDX_Text(pDX, IDC_MAJORPITCHGRIDINCREMENT, m_majorPitchGridIncrement);
	DDV_MinMaxDouble(pDX, m_majorPitchGridIncrement, 5., 45.);
	DDP_Text(pDX, IDC_MAJORROLLGRIDINCREMENT, m_majorRollGridIncrement, _T("MajorRollGridIncrement") );
	DDX_Text(pDX, IDC_MAJORROLLGRIDINCREMENT, m_majorRollGridIncrement);
	DDV_MinMaxDouble(pDX, m_majorRollGridIncrement, 5., 45.);
	DDP_Text(pDX, IDC_MAXPITCHANGLE, m_maxPitchAngle, _T("MaxPitchAngle") );
	DDX_Text(pDX, IDC_MAXPITCHANGLE, m_maxPitchAngle);
	DDV_MinMaxDouble(pDX, m_maxPitchAngle, 30., 80.);
	DDP_Text(pDX, IDC_MAXPITCHGRIDANGLE, m_maxPitchGridAngle, _T("MaxPitchGridAngle") );
	DDX_Text(pDX, IDC_MAXPITCHGRIDANGLE, m_maxPitchGridAngle);
	DDV_MinMaxDouble(pDX, m_maxPitchGridAngle, 15., 45.);
	DDP_Text(pDX, IDC_MAXROLLANGLE, m_maxRollAngle, _T("MaxRollAngle") );
	DDX_Text(pDX, IDC_MAXROLLANGLE, m_maxRollAngle);
	DDV_MinMaxDouble(pDX, m_maxRollAngle, 30., 80.);
	DDP_Text(pDX, IDC_MINORGRIDWIDTH, m_minorGridWidth, _T("MinorGridWidth") );
	DDX_Text(pDX, IDC_MINORGRIDWIDTH, m_minorGridWidth);
	DDV_MinMaxInt(pDX, m_minorGridWidth, 1, 5);
	DDP_Text(pDX, IDC_MINORPITCHGRIDINCREMENT, m_minorPitchGridIncrement, _T("MinorPitchGridIncrement") );
	DDX_Text(pDX, IDC_MINORPITCHGRIDINCREMENT, m_minorPitchGridIncrement);
	DDV_MinMaxDouble(pDX, m_minorPitchGridIncrement, 1., 15.);
	DDP_Text(pDX, IDC_MINORROLLGRIDINCREMENT, m_minorRollGridIncrement, _T("MinorRollGridIncrement") );
	DDX_Text(pDX, IDC_MINORROLLGRIDINCREMENT, m_minorRollGridIncrement);
	DDV_MinMaxDouble(pDX, m_minorRollGridIncrement, 1., 15.);
	DDP_Text(pDX, IDC_OUTERRINGWIDTH, m_outerRingWidth, _T("OuterRingWidth") );
	DDX_Text(pDX, IDC_OUTERRINGWIDTH, m_outerRingWidth);
	DDV_MinMaxInt(pDX, m_outerRingWidth, 1, 10);
	//}}AFX_DATA_MAP
	DDP_PostProcessing(pDX);
}


/////////////////////////////////////////////////////////////////////////////
// CEightBall2PropPage message handlers
