/*-----------------------------------------------------------------------------
[名称]	SettingPath.h
[概要]	設定ファイルパスクラスのヘッダ
[備考]	なし
[履歴]	2003-03-08	NC		コメント付加(moralog)
-----------------------------------------------------------------------------*/
#if !defined(AFX_SETTINGPATH_H_INCLUDED_)
#define AFX_SETTINGPATH_H_INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

//-----------------------------------------------------------------------------
// インクルード
//-----------------------------------------------------------------------------
#include <afxtempl.h>


/*-----------------------------------------------------------------------------
[名称]	設定ファイルパスクラス
[用途]	設定ファイルにまつわるデータ管理のカプセル。
[備考]	なし
-----------------------------------------------------------------------------*/
class CSettingPath  
{
// インタフェース
public:
	// （生成）・破棄・インスタンスの取得
	virtual ~CSettingPath();
	static CSettingPath* GetInstance();

	// フォルダ個数
	int		Count(){ return( m_astrFolderNamez.GetSize() ); };

	// 列挙されたフォルダ名称取得
	CString	GetFolderName( int idxFolder ){ return( m_astrFolderNamez.GetAt(idxFolder) ); };

	// カレントフォルダを指定
	void		SetFolderIndex( int idxFolder );

	// カレントフォルダを指定
	BOOL		PrepareFolder( CString& strFolderName );

	// カレントフォルダのパスを得る
	CString		GetFolderPath();

	// したらびあんフォルダパス取得
	CString		GetShitarabianFolderPath();

	// ジェネラルフォルダに戻す
	void		ResetGeneralFolder();

	// Extに対応する設定を反映する
	BOOL PrepareExtFolder(
		CString& strExt
	);

	// ファイルフィルタ取得
	BOOL GetFilter(
		CString*		pstrFilter,
		CString*		pstrDefaultExt
	);

	// 設定に対応する拡張子群を得る
	BOOL GetExtz(
		int				idxFolder,
		CStringArray*	pastrExtz
	);

// インプリメント
protected:
	// 設定パス群の取得
	void	Initialize();

	// フォルダの存在確認
	BOOL	Exists();

protected:
	CStringArray	m_astrFolderNamez;		// 設定名称群 [-] (-)
	CString			m_strIniFolderPath;		// 初期化ファイルフォルダパス [-] (-)

private:
	// 隠蔽されたコンストラクタ
	CSettingPath();
};

#endif // !defined(AFX_SETTINGPATH_H_INCLUDED_)
