// IcasAtrDlg.cpp : implementation of the CIcasAtrDlg class
//
#include "stdafx.h"
#include "ICAS.h"
#include "IcasAtrDlg.h"
#include "ICASDoc.h"
#include "ICASView.h"
#include "IcasFig.h" //type
extern CICASView* g_pView;//ICASView.cpp
// CIcasAtrDlg dialog
IMPLEMENT_DYNAMIC(CIcasAtrDlg, CDialog)
CIcasAtrDlg::CIcasAtrDlg(int x, int y, CIcas* pIcas, CWnd* pParent /*=NULL*/)
: CDialog(CIcasAtrDlg::IDD, pParent), m_x(x), m_y(y), m_pIcas(pIcas)
{
m_pParent = pParent;
m_nID = CIcasAtrDlg::IDD;
m_nType = m_pIcas->GetType();
m_nReso = m_pIcas->GetReso();
SetReso(m_nReso);
SetType(m_nType);
//
m_dParam = m_pIcas->GetParam();
m_dReso = m_pIcas->GetdReso();
//
m_nParaLen = m_pIcas->GetTriSize();
}
CIcasAtrDlg::~CIcasAtrDlg()
{
}
void CIcasAtrDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Check(pDX, IDC_ICAS_CLOSE, m_nClose);
DDX_Check(pDX, IDC_ICAS_CONTROL, m_nCntl);
DDX_Check(pDX, IDC_ICAS_BASE, m_nBase);
DDX_Check(pDX, IDC_ICAS_GRID, m_nGrid);
DDX_Check(pDX, IDC_RESO_0, m_nReso0);
DDX_Check(pDX, IDC_RESO_1, m_nReso1);
DDX_Check(pDX, IDC_RESO_2, m_nReso2);
DDX_Check(pDX, IDC_RESO_3, m_nReso3);
DDX_Check(pDX, IDC_RESO_4, m_nReso4);
DDX_Check(pDX, IDC_RESO_5, m_nReso5);
DDX_Check(pDX, IDC_SEL_PARAM_CHK, m_nParam);
DDX_Text(pDX, IDC_SEL_PARAM_EDT, m_dParam);
DDX_Text(pDX, IDC_SEL_PARAM_LIMIT, m_nParaLen);
DDX_Text(pDX, IDC_SEL_RESO_EDT, m_dReso);
}
BEGIN_MESSAGE_MAP(CIcasAtrDlg, CDialog)
ON_BN_CLICKED(IDOK, CIcasAtrDlg::OnBnClickedOk)
ON_BN_CLICKED(IDC_ICAS_CLOSE, CIcasAtrDlg::OnBnClickedIcasClose)
ON_BN_CLICKED(IDC_ICAS_CONTROL, CIcasAtrDlg::OnBnClickedIcasControl)
ON_BN_CLICKED(IDC_ICAS_BASE, CIcasAtrDlg::OnBnClickedIcasBase)
ON_BN_CLICKED(IDC_ICAS_GRID, CIcasAtrDlg::OnBnClickedIcasGrid)
ON_BN_CLICKED(IDC_RESO_0, CIcasAtrDlg::OnBnClickedReso0)
ON_BN_CLICKED(IDC_RESO_1, CIcasAtrDlg::OnBnClickedReso1)
ON_BN_CLICKED(IDC_RESO_2, CIcasAtrDlg::OnBnClickedReso2)
ON_BN_CLICKED(IDC_RESO_3, CIcasAtrDlg::OnBnClickedReso3)
ON_BN_CLICKED(IDC_RESO_4, CIcasAtrDlg::OnBnClickedReso4)
ON_BN_CLICKED(IDC_RESO_5, CIcasAtrDlg::OnBnClickedReso5)
ON_BN_CLICKED(IDC_RECALC, CIcasAtrDlg::OnBnClickedRecalc)
ON_BN_CLICKED(IDC_SEL_APPLY, CIcasAtrDlg::OnBnClickedSelApply)
ON_BN_CLICKED(IDC_SEL_PARAM_CHK, CIcasAtrDlg::OnBnClickedSelParamChk)
ON_BN_CLICKED(IDC_SEL_UNDOREDO, CIcasAtrDlg::OnBnClickedSelUndoredo)
END_MESSAGE_MAP()
void CIcasAtrDlg::OnBnClickedOk()
{
if (m_pIcas) {
m_pIcas->SetType( GetType() );
m_pIcas->SetReso( GetReso() );
m_pIcas->SetParam( m_dParam );
m_pIcas->SetdReso( m_dReso );
}
OnOK();
}
// CIcasAtrDlg message handlers
BOOL CIcasAtrDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CIcasAtrDlg::SetWindowPos(&wndTop, m_x, m_y, 0, 0, SWP_NOSIZE);
//
if (m_pIcas->EnableUndo()) {
((CButton*)GetDlgItem(IDC_SEL_UNDOREDO))->EnableWindow(TRUE);
}
else {
((CButton*)GetDlgItem(IDC_SEL_UNDOREDO))->EnableWindow(FALSE);
}
return TRUE;
}
void CIcasAtrDlg::OnBnClickedIcasClose()
{
if (((CButton*)GetDlgItem(IDC_ICAS_CLOSE))->GetCheck())
m_nClose = L_CLOSE;
else
m_nClose = L_OPEN;
}
void CIcasAtrDlg::OnBnClickedIcasControl()
{
if (((CButton*)GetDlgItem(IDC_ICAS_CONTROL))->GetCheck())
m_nCntl = 1;
else
m_nCntl = 0;
}
void CIcasAtrDlg::OnBnClickedIcasBase()
{
if (((CButton*)GetDlgItem(IDC_ICAS_BASE))->GetCheck())
m_nBase = 1;
else
m_nBase = 0;
}
void CIcasAtrDlg::OnBnClickedIcasGrid()
{
if (((CButton*)GetDlgItem(IDC_ICAS_GRID))->GetCheck())
m_nGrid = 1;
else
m_nGrid = 0;
}
void CIcasAtrDlg::OnBnClickedReso0()
{
m_nReso = -1;
m_nReso0 = 0;
if (((CButton*)GetDlgItem(IDC_RESO_0))->GetCheck())
{
m_nReso0 = 1;
m_nReso = 0;
}
}
void CIcasAtrDlg::OnBnClickedReso1()
{
m_nReso = -1;
m_nReso1 = 0;
if (((CButton*)GetDlgItem(IDC_RESO_1))->GetCheck())
{
m_nReso1 = 1;
m_nReso = 1;
}
}
void CIcasAtrDlg::OnBnClickedReso2()
{
m_nReso = -1;
m_nReso2 = 0;
if (((CButton*)GetDlgItem(IDC_RESO_2))->GetCheck())
{
m_nReso2 = 1;
m_nReso = 2;
}
}
void CIcasAtrDlg::OnBnClickedReso3()
{
m_nReso = -1;
m_nReso3 = 0;
if (((CButton*)GetDlgItem(IDC_RESO_3))->GetCheck())
{
m_nReso3 = 1;
m_nReso = 3;
}
}
void CIcasAtrDlg::OnBnClickedReso4()
{
m_nReso = -1;
m_nReso4 = 0;
if (((CButton*)GetDlgItem(IDC_RESO_4))->GetCheck())
{
m_nReso4 = 1;
m_nReso = 4;
}
}
void CIcasAtrDlg::OnBnClickedReso5()
{
m_nReso = -1;
m_nReso5 = 0;
if (((CButton*)GetDlgItem(IDC_RESO_5))->GetCheck())
{
m_nReso5 = 1;
m_nReso = 5;
}
}
void CIcasAtrDlg::SetType(int Type)
{
m_nClose = 0;
m_nBase = 0;
m_nGrid = 0;
m_nCntl = 0;
m_nParam = 0;
if (Type & L_CLOSE) m_nClose = 1;
if (Type & L_BASE_SEG) m_nBase = 1;
if (Type & L_GRID) m_nGrid = 1;
if (Type & L_CONTROL_PNT) m_nCntl = 1;
if (Type & L_PARAMETRIC) m_nParam = 1;
}
int CIcasAtrDlg::GetType()
{
int type = 0;
if (m_nClose) type |= L_CLOSE;
if (m_nBase) type |= L_BASE_SEG;
if (m_nGrid) type |= L_GRID;
if (m_nCntl) type |= L_CONTROL_PNT;
if (m_nParam) type |= L_PARAMETRIC;
return type;
}
void CIcasAtrDlg::OnBnClickedRecalc()
{
CWnd::UpdateData(TRUE);
if (g_pView) {
if (m_pIcas) {
m_pIcas->SetType( GetType() );
m_pIcas->SetReso( GetReso() );
m_pIcas->SetParam( m_dParam );
m_pIcas->SetdReso( m_dReso );
m_pIcas->SetCntl();//Recalc
}
g_pView->DrawFromDlg();
}
}
void CIcasAtrDlg::OnBnClickedSelApply()
{
CWnd::UpdateData(TRUE);
if (g_pView) {
if (m_pIcas) {
m_pIcas->SetType( GetType() );
m_pIcas->SetReso( GetReso() );
m_pIcas->SetParam( m_dParam );
m_pIcas->SetdReso( m_dReso );
}
g_pView->DrawFromDlg();
}
}
void CIcasAtrDlg::OnBnClickedSelParamChk()
{
if (((CButton*)GetDlgItem(IDC_SEL_PARAM_CHK))->GetCheck())
m_nParam = 1;
else
m_nParam = 0;
}
void CIcasAtrDlg::OnBnClickedSelUndoredo()
{
if (g_pView) {
if (m_pIcas) {
if (m_pIcas->Undo()) {//toggle values
g_pView->DrawFromDlg();
}
}
}
}