#include "stdafx.h"
#include "PGL/pgl.h"
#include "PGL/PGLAxe2DPropPage.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
IMPLEMENT_DYNCREATE(CPGLAxe2DPropPage, CPropertyPage)
CPGLAxe2DPropPage::CPGLAxe2DPropPage(CPGLAxe2D* _pAxe2D)
: CPropertyPage(CPGLAxe2DPropPage::IDD)
{
m_bHorGrid = FALSE;
m_bVertGrid = FALSE;
m_bXAuto = FALSE;
m_dXStep = 0.0;
m_bYAuto = FALSE;
m_dYStep = 0.0;
m_bBotLbl = FALSE;
m_sBotLbl = _T("");
m_sLeftLbl = _T("");
m_sTopLbl = _T("");
m_bLeftLbl = FALSE;
m_bRightLbl = FALSE;
m_bTopLbl = FALSE;
m_sRightLbl = _T("");
m_bNumberBottom = FALSE;
m_bNumberLeft = FALSE;
m_bNumberRight = FALSE;
m_bNumberTop = FALSE;
m_slNumberBottom = 0;
m_slNumberLeft = 0;
m_slNumberRight = 0;
m_slNumberTop = 0;
m_tTimeOriginH = 0;
m_tTimeStep = 0;
m_tTimeOrigin = 0;
m_iDays = 0;
m_sTimeFormat = _T("");
m_bTimeLabel = FALSE;
m_bLogX = FALSE;
m_bLogY = FALSE;
m_pAxe2D=_pAxe2D;
}
CPGLAxe2DPropPage::~CPGLAxe2DPropPage()
{
}
void CPGLAxe2DPropPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Check(pDX, IDC_PGL_HORGRID_CHECK, m_bHorGrid);
DDX_Check(pDX, IDC_PGL_VERTGRID_CHECK, m_bVertGrid);
DDX_Check(pDX, IDC_PGL_XNUMBER_CHECK, m_bXAuto);
DDX_Text(pDX, IDC_PGL_XNUMBER_EDIT, m_dXStep);
DDX_Check(pDX, IDC_PGL_YNUMBER_CHECK, m_bYAuto);
DDX_Text(pDX, IDC_PGL_YNUMBER_EDIT, m_dYStep);
DDX_Check(pDX, IDC_PGL_BOTTOM_LABEL_CHECK, m_bBotLbl);
DDX_Text(pDX, IDC_PGL_EDIT_BOTTOM_LABEL, m_sBotLbl);
DDX_Text(pDX, IDC_PGL_EDIT_LEFT_LABEL, m_sLeftLbl);
DDX_Text(pDX, IDC_PGL_EDIT_TOP_LABEL, m_sTopLbl);
DDX_Check(pDX, IDC_PGL_LEFT_LABEL_CHECK, m_bLeftLbl);
DDX_Check(pDX, IDC_PGL_RIGHT_LABEL_CHECK, m_bRightLbl);
DDX_Check(pDX, IDC_PGL_TOP_LABEL_CHECK, m_bTopLbl);
DDX_Text(pDX, IDC_PGL_EDIT_RIGHT_LABEL, m_sRightLbl);
DDX_Check(pDX, IDC_PGL_CHECK_NUMBER_BOTTOM, m_bNumberBottom);
DDX_Check(pDX, IDC_PGL_CHECK_NUMBER_LEFT, m_bNumberLeft);
DDX_Check(pDX, IDC_PGL_CHECK_NUMBER_RIGHT, m_bNumberRight);
DDX_Check(pDX, IDC_PGL_CHECK_NUMBER_TOP, m_bNumberTop);
DDX_Slider(pDX, IDC_PGL_SLIDER_NUMBER_BOTTOM, m_slNumberBottom);
DDX_Slider(pDX, IDC_PGL_SLIDER_NUMBER_LEFT, m_slNumberLeft);
DDX_Slider(pDX, IDC_PGL_SLIDER_NUMBER_RIGHT, m_slNumberRight);
DDX_Slider(pDX, IDC_PGL_SLIDER_NUMBER_TOP, m_slNumberTop);
DDX_DateTimeCtrl(pDX, IDC_PGL_DATETIMEPICKER_TIMEORIGIN_HOUR, m_tTimeOriginH);
DDX_DateTimeCtrl(pDX, IDC_PGL_DATETIMEPICKER_TIMESTEP_HOURS, m_tTimeStep);
DDX_DateTimeCtrl(pDX, IDC_PGL_DATETIMEPICKER_TIMEORIGIN, m_tTimeOrigin);
DDX_Text(pDX, IDC_PGL_EDIT_TIMESTEP_DAYS, m_iDays);
DDX_Text(pDX, IDC_PGL_EDIT_TIMEFORMAT, m_sTimeFormat);
DDX_Check(pDX, IDC_PGL_CHECK_TIME_LABEL, m_bTimeLabel);
DDX_Check(pDX, IDC_PGL_CHECK_LOGX, m_bLogX);
DDX_Check(pDX, IDC_PGL_CHECK_LOGY, m_bLogY);
}
BEGIN_MESSAGE_MAP(CPGLAxe2DPropPage, CPropertyPage)
END_MESSAGE_MAP()
BOOL CPGLAxe2DPropPage::OnSetActive()
{
ASSERT_VALID(m_pAxe2D);
Refresh();
return CPropertyPage::OnSetActive();
}
BOOL CPGLAxe2DPropPage::OnKillActive()
{
UpdateData(TRUE);
m_pAxe2D->SetLeftLabel(m_sLeftLbl);
m_pAxe2D->SetRightLabel(m_sRightLbl);
m_pAxe2D->SetBottomLabel(m_sBotLbl);
m_pAxe2D->SetTopLabel(m_sTopLbl);
m_pAxe2D->GetLeftLabel()->Show(m_bLeftLbl);
m_pAxe2D->GetRightLabel()->Show(m_bRightLbl);
m_pAxe2D->GetTopLabel()->Show(m_bTopLbl);
m_pAxe2D->GetBottomLabel()->Show(m_bBotLbl);
m_pAxe2D->SetShowGrid(1,m_bHorGrid);
m_pAxe2D->SetShowGrid(0,m_bVertGrid);
m_pAxe2D->SetAutoSteps(0,m_bXAuto);
m_pAxe2D->SetAutoSteps(1,m_bYAuto);
m_pAxe2D->SetGridStep(0,m_dXStep);
m_pAxe2D->SetGridStep(1,m_dYStep);
m_pAxe2D->SetLogAxis(0,m_bLogX);
m_pAxe2D->SetLogAxis(1,m_bLogY);
m_pAxe2D->GetBottomNumber()->Show(m_bNumberBottom);
m_pAxe2D->GetTopNumber()->Show(m_bNumberTop);
m_pAxe2D->GetLeftNumber()->Show(m_bNumberLeft);
m_pAxe2D->GetRightNumber()->Show(m_bNumberRight);
m_pAxe2D->SetBottomNumberPos(m_slNumberBottom/100.0);
m_pAxe2D->SetTopNumberPos(m_slNumberTop/100.0);
m_pAxe2D->SetLeftNumberPos(m_slNumberLeft/100.0);
m_pAxe2D->SetRightNumberPos(m_slNumberRight/100.0);
m_pAxe2D->SetTimeLabel(m_bTimeLabel);
CTime orig( m_tTimeOrigin.GetYear(), m_tTimeOrigin.GetMonth(), m_tTimeOrigin.GetDay(),
m_tTimeOriginH.GetHour(), m_tTimeOriginH.GetMinute(), m_tTimeOrigin.GetSecond());
CTimeSpan step(m_iDays, m_tTimeStep.GetHour(), m_tTimeStep.GetMinute(),m_tTimeStep.GetSecond());
m_pAxe2D->SetTimeLabelFormat(orig, step, m_sTimeFormat);
return CPropertyPage::OnKillActive();
}
void CPGLAxe2DPropPage::Refresh()
{
m_sLeftLbl = m_pAxe2D->GetLeftLabel()->GetString();
m_sRightLbl = m_pAxe2D->GetRightLabel()->GetString();
m_sTopLbl = m_pAxe2D->GetTopLabel()->GetString();
m_sBotLbl = m_pAxe2D->GetBottomLabel()->GetString();
m_bLeftLbl = m_pAxe2D->GetLeftLabel()->IsVisible();
m_bRightLbl = m_pAxe2D->GetRightLabel()->IsVisible();
m_bTopLbl = m_pAxe2D->GetTopLabel()->IsVisible();
m_bBotLbl = m_pAxe2D->GetBottomLabel()->IsVisible();
m_bHorGrid=m_pAxe2D->IsShowGrid(1);
m_bVertGrid=m_pAxe2D->IsShowGrid(0);
m_bXAuto=m_pAxe2D->IsAutoSteps(0);
m_bYAuto=m_pAxe2D->IsAutoSteps(1);
m_dXStep=m_pAxe2D->GetGridStep(0);
m_dYStep=m_pAxe2D->GetGridStep(1);
m_bLogX = m_pAxe2D->IsLogAxis(0);
m_bLogY = m_pAxe2D->IsLogAxis(1);
m_bNumberBottom = m_pAxe2D->GetBottomNumber()->IsVisible();
m_bNumberTop = m_pAxe2D->GetTopNumber()->IsVisible();
m_bNumberLeft = m_pAxe2D->GetLeftNumber()->IsVisible();
m_bNumberRight = m_pAxe2D->GetRightNumber()->IsVisible();
m_slNumberBottom = (int)floor(m_pAxe2D->GetBottomNumberPos()*100);
m_slNumberLeft = (int)floor(m_pAxe2D->GetLeftNumberPos()*100);
m_slNumberTop = (int)floor(m_pAxe2D->GetTopNumberPos()*100);
m_slNumberRight = (int)floor(m_pAxe2D->GetRightNumberPos()*100);
m_bTimeLabel = m_pAxe2D->IsTimeLabel();
m_iDays = m_pAxe2D->GetTimeLabelStep().GetDays();
m_tTimeStep = CTime( 2000, 1, 1,
m_pAxe2D->GetTimeLabelStep().GetHours(),
m_pAxe2D->GetTimeLabelStep().GetMinutes(),
m_pAxe2D->GetTimeLabelStep().GetSeconds() );
m_tTimeOrigin = CTime( m_pAxe2D->GetTimeLabelOrig());
m_tTimeOriginH = CTime( m_pAxe2D->GetTimeLabelOrig());
m_sTimeFormat = m_pAxe2D->GetTimeLabelString();
UpdateData(FALSE);
}