// DlgLanguSelect.cpp : インプリメンテーション ファイル
//

#include "stdafx.h"
#include "MCS.h"
#include "DlgLanguSelect.h"
#include "HalSIS.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDlgLanguSelect ダイアログ


CDlgLanguSelect::CDlgLanguSelect(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgLanguSelect::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgLanguSelect)
		// メモ - ClassWizard はこの位置にマッピング用のマクロを追加または削除します。
	//}}AFX_DATA_INIT
}


void CDlgLanguSelect::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgLanguSelect)
		// メモ - ClassWizard はこの位置にマッピング用のマクロを追加または削除します。
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgLanguSelect, CDialog)
	//{{AFX_MSG_MAP(CDlgLanguSelect)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgLanguSelect メッセージ ハンドラ

BOOL CDlgLanguSelect::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	int preLngIndex = -1;
	int ukEngIndex  = -1;
	
	// TODO: この位置に初期化の補足処理を追加してください
	int i;

	CComboBox* combo = (CComboBox *)GetDlgItem(IDC_COMBO_LANG);

	for(i = 0;i < m_LanguageCount;i++){
		if(m_Languages[i] > 0 && m_Languages[i] < (sizeof(tbl_languages) / sizeof(char*))){
			combo->AddString(tbl_languages[m_Languages[i] - 1]);
			if (m_Languages[i] == HALSIS_PREFERRED_LANGUAGE){
				preLngIndex = i;
			}
			if(m_Languages[i] == 1){
				ukEngIndex = i;
			}
		}
	}

	if (preLngIndex < 0){
		if(ukEngIndex >= 0){
			combo->SetWindowText(tbl_languages[m_Languages[ukEngIndex] - 1]); // UK english
		}else{
			combo->SetWindowText(tbl_languages[m_Languages[0] - 1]);
		}
	}else{
		combo->SetWindowText(tbl_languages[m_Languages[preLngIndex] - 1]);
	}

	return TRUE;  // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります
	              // 例外: OCX プロパティ ページの戻り値は FALSE となります
}

void CDlgLanguSelect::OnOK() 
{
	// TODO: この位置にその他の検証用のコードを追加してください
	int i;
	char workTemp[32];
	CComboBox* combo = (CComboBox *)GetDlgItem(IDC_COMBO_LANG);

	combo->GetWindowText(workTemp, 32);

	m_SelectedLanguageIndex = -1;
	for(i = 0;i < m_LanguageCount;i++){
		if(strcmp(workTemp, tbl_languages[m_Languages[i] - 1]) == 0){
			m_SelectedLanguageIndex = i;
			i = MAX_NUM_OF_LNGS;
		}
	}

	if(m_SelectedLanguageIndex < 0){
		combo->SetWindowText(tbl_languages[0]); // UK english
	}

	CDialog::OnOK();
}
