// SetSaveLineID.cpp : implementation file

#include "stdafx.h"
#include "SetSaveLineID.h"
#include "afxdialogex.h"
#include <iostream>
#include <cstdio>
#include <regex>

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSetSaveLineID dialog


CSetSaveLineID::CSetSaveLineID(CWnd* pParent /*=NULL*/)
	: CBCGPDialog(CSetSaveLineID::IDD, pParent)
{
	EnableVisualManagerStyle(TRUE, TRUE);
	//{{AFX_DATA_INIT(CSetSaveLineID)
	m_lineProperty = 1;
	//}}AFX_DATA_INIT

	m_strFlyLineName = _T("");

	//º½Ïß±àºÅ
	m_designLineID = 0;

	m_LineHgt = 1500;

	m_bCheck = false;

	m_bClosedLine = 1;

	m_bCheckMultiLine = false;
}


void CSetSaveLineID::DoDataExchange(CDataExchange* pDX)
{
	CBCGPDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSetSaveLineID)
	DDX_Control(pDX, IDC_COMBO_LINEID, m_comboLineID);
	DDX_Radio(pDX, IDC_RADIO_LINE, m_lineProperty);
	DDX_Text(pDX, IDC_EDIT_LHGT, m_LineHgt);
	//}}AFX_DATA_MAP
	DDX_Control(pDX, IDC_COMBO_LINECE, m_LineCE);
	//DDV_MinMaxDouble(pDX, m_LineHgt, 0.001, 99999.999);
	DDX_Control(pDX, IDC_EDIT_LHGT, heightEdit);
}


BEGIN_MESSAGE_MAP(CSetSaveLineID, CBCGPDialog)
	//{{AFX_MSG_MAP(CSetSaveLineID)
	ON_CBN_SELCHANGE(IDC_COMBO_LINEID, OnSelchangeComboLineid)
	//}}AFX_MSG_MAP
	ON_BN_CLICKED(IDOK, CSetSaveLineID::OnBnClickedOk)
	//ON_BN_CLICKED(IDC_RADIO3, &CSetSaveLineID::OnBnClickedRadio3)
//	ON_EN_CHANGE(IDC_EDIT_LHGT, &CSetSaveLineID::OnEnChangeEditLhgt)
ON_BN_CLICKED(IDC_RADIO_MultiRoute, &CSetSaveLineID::OnBnClickedRadioMultiroute)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSetSaveLineID message handlers

void CSetSaveLineID::OnSelchangeComboLineid() 
{
	UpdateData(TRUE);

	//º½Ïß±àºÅ
	m_designLineID = m_comboLineID.GetCurSel()+1;

	//2023.0616 
	////º½ÏßÎļþÃû³Æ
	//m_strFlyLineName = GetFlyLineName(m_designLineID);
	//
	////ÅжÏÎļþÊÇ·ñ´æÔÚ
	/*if (SearchDirectory(m_strFlyLineName))
	{
		if ( BCGPMessageBox( "ÒѾ­´æÔÚ¸ÃÎļþ£¬ÊÇ·ñ¸²¸Ç£¿", MB_ICONQUESTION + MB_YESNO ) == IDYES )
		{*/
			GetDlgItem(IDOK)->EnableWindow(TRUE);//2023.0616 

			//·¢Ë͵½Ö÷³ÌÐò£¬ÅжÏÊÇ·ñÒѾ­ÏÔʾÁË
			if (g_viewHwnd != NULL)
			{
				::PostMessage(g_viewHwnd, WM_CHECK_FLY_LINE_STATUS, WPARAM(m_designLineID), 0);
			}
//2023.0616 
			/*}
			else
			{
			m_strFlyLineName = _T("");
			GetDlgItem(IDOK)->EnableWindow(FALSE);
			}
			}
			else
			{
			GetDlgItem(IDOK)->EnableWindow(TRUE);
			}*/
	//2023.0616 
}


BOOL CSetSaveLineID::OnInitDialog()
{
	CBCGPDialog::OnInitDialog();	

	CString str = _T("");

	int i = 0;
	for (i=0; i<5; ++i)
	{
		str.Format(_T("%d"), i+1);
		m_comboLineID.InsertString(i, str);
	}
	m_comboLineID.InsertString(i, _T("Ó¦¼±º½Ïß"));
	m_comboLineID.InsertString(i+1, _T("µç×ÓΧÀ¸"));
	GetDlgItem(IDOK)->EnableWindow(FALSE);

	m_LineCE.InsertString(0,_T("¿ªºÏ"));
	m_LineCE.InsertString(1,_T("±ÕºÏ"));
	//GetDlgItem(IDC_RADIO3)->EnableWindow(TRUE);
	if (g_b981CDesktop)
	{
/*
		((CButton *)GetDlgItem(IDC_RADIO3))->SetCheck(true);
		m_bCheck = true;*/
		m_LineCE.SetCurSel(1);
	}
	else
	{
/*
		((CButton *)GetDlgItem(IDC_RADIO3))->SetCheck(false);
		m_bCheck = false;*/
		m_LineCE.SetCurSel(0);
	}
	
	return TRUE;  // return TRUE unless you set the focus to a control
	// Òì³£: OCX ÊôÐÔÒ³Ó¦·µ»Ø FALSE
}


void CSetSaveLineID::OnBnClickedOk()
{
	//º½Ïß±àºÅ
	//m_designLineID = m_comboLineID.GetCurSel()+1;
	m_designLineID = GetLineID();
	m_bClosedLine = m_LineCE.GetCurSel();

	// Åжϸ߶ÈÊäÈëÊÇ·ñÓÐЧ. ÕûÊý²¿·Ö²»³¬¹ý5λÊý£¬Ð¡Êýµãºó1-3룬ÕýÊý
	string str = "^\\d{0,5}(\\.\\d{1,2})?$";
	regex heightCheck(str);
	CString strHeight;
	heightEdit.GetWindowTextA(strHeight);
	char* temp = strHeight.GetBuffer(strHeight.GetLength());
	string asHeight = temp;
	bool isNumber = regex_match(asHeight,heightCheck);
	if(!isNumber){
		BCGPMessageBox("¸ß¶ÈÉèÖò»ºÏ·¨£¬ÇëÊäÈë0-99999.99Ö®¼äµÄÊý×Ö");
		return;
	}
	CBCGPDialog::OnOK();
}


/*
void CSetSaveLineID::OnBnClickedRadio3()
{
	if (!m_bCheck)
	{
		((CButton *)GetDlgItem(IDC_RADIO3))->SetCheck(true);
		m_bCheck = true;
	}
	else
	{
		((CButton *)GetDlgItem(IDC_RADIO3))->SetCheck(false);
		m_bCheck = false;
	}
}*/

//»ñÈ¡º½ÏßID
int CSetSaveLineID::GetLineID()
{
	CString str;
	m_comboLineID.GetWindowTextA(str);
	if (g_b981ADesktop || g_b981APad)
	{
		if (str=="Ó¦¼±º½Ïß")
		{
			return 11;
		}
		else if (str=="µç×ÓΧÀ¸")
		{
			return 12;
		}
		else
		{
			return _ttoi(str);
		}
	}

	if (g_b981CDesktop)
	{
		if (str=="Ó¦¼±º½Ïß")
		{
			return 7;
		}
		else if (str=="µç×ÓΧÀ¸")
		{
			return 6;
		}
		else
		{
			return _ttoi(str);
		}
	}
}


//Ñ¡ÔñÅúÁ¿º½Ïß
void CSetSaveLineID::OnBnClickedRadioMultiroute()
{
	if (!m_bCheckMultiLine)	
	{
		((CButton *)GetDlgItem(IDC_RADIO_MultiRoute))->SetCheck(true);
		m_bCheckMultiLine = true;
	}
	else
	{
		((CButton *)GetDlgItem(IDC_RADIO_MultiRoute))->SetCheck(false);
		m_bCheckMultiLine = false;
	}
}