/********************************************************************/
/* Copyright (c) 2019 System fugen G.K. and Yuzi Mizuno          */
/* All rights reserved.                                             */
/********************************************************************/
/********************************************************************/
// GLMeshDisplayDlg.cpp : 実装ファイル

#include "stdafx.h"
#include "fugen.h"
#include "GLMeshDisplayDlg.h"
#include "GLWndMsg.h"

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

// CGLMeshDisplayDlg ダイアログ

IMPLEMENT_DYNAMIC(CGLMeshDisplayDlg, CDialog)

CGLMeshDisplayDlg::CGLMeshDisplayDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CGLMeshDisplayDlg::IDD, pParent)
{
}

CGLMeshDisplayDlg::~CGLMeshDisplayDlg()
{
}

void CGLMeshDisplayDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_MESH_DISPLAY_COMBO, m_combo);
}

BEGIN_MESSAGE_MAP(CGLMeshDisplayDlg, CDialog)
	ON_CBN_SELCHANGE(IDC_MESH_DISPLAY_COMBO, OnCbnSelchangeMeshDisplayCombo)
END_MESSAGE_MAP()

BOOL CGLMeshDisplayDlg::OnInitDialog()
{
	if(!CDialog::OnInitDialog()){
		return FALSE;
	}

	// ドロップダウンリストの初期化
	CString strItem;
	strItem.LoadString(IDS_MESH_DISPLAY_WIRE);
	m_combo.InsertString(-1, strItem);
	strItem.LoadString(IDS_MESH_DISPLAY_SHADE);
	m_combo.InsertString(-1, strItem);
	strItem.LoadString(IDS_MESH_DISPLAY_MIXED);
	m_combo.InsertString(-1, strItem);

	// ドロップダウンリストの初期選択
	m_combo.SetCurSel(0);

	UpdateData(FALSE);
	return TRUE;
}

MGCL::VIEWMODE CGLMeshDisplayDlg::GetViewMode() const
{
	ASSERT_VALID(&m_combo);
	return static_cast<MGCL::VIEWMODE>(m_combo.GetCurSel()+1);
}

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

void CGLMeshDisplayDlg::OnCbnSelchangeMeshDisplayCombo()
{
	if(!UpdateData()){
		return;
	}

	// 親ダイアログ経由で描画スタイル変更をコマンドに知らせる。
	GetParent()->SendMessage(WM_FUGEN_MESH_DISPLAY_STYLE_CHANGED);
}

