/********************************************************************/
/* Copyright (c) 2019 System fugen G.K. and Yuzi Mizuno          */
/* All rights reserved.                                             */
/********************************************************************/
/********************************************************************/
#pragma once

/// ファイルダイアログのカスタマイズ
class CGLFileDialog : public CFileDialog
{
public:
	/// コンストラクター
	///
	/// シグニチャーは CFileDialog のそれに合わせてある。
	CGLFileDialog(
		BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs
		LPCTSTR lpszDefExt = NULL,
		LPCTSTR lpszFileName = NULL,
		DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
		LPCTSTR lpszFilter = NULL,
		CWnd* pParentWnd = NULL);

	/// 選択されている "AG Files (*.ag)" 等のテキストを返す。
	CString GetCurrentFilterText() const;

	/// m_pfn.lpstrFilter からドット付き拡張子文字列を一つ返す。
	CString GetDesiredExt() const;

protected:
	virtual BOOL OnInitDialog();

	/// 入力パス名の検査に利用する。MSDN を参照。
	virtual BOOL OnFileNameOK();

	/// コンボボックスの選択が変化したときに呼ばれる。MSDN を参照。
	virtual void OnTypeChange();

	afx_msg void OnBnClickedOption();
	DECLARE_MESSAGE_MAP()

private:
	void UpdateOptionButton();
};
