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

class MGGroup;

class CGLFileExporter : public CGLFile{
public:
	CGLFileExporter(){}
	CGLFileExporter(const CString& strDesc);
	CGLFileExporter(UINT nIDSDesc);
	virtual bool Save(const MGGroup&) = 0;

	/// 保存する際に何らかのオプションが存在するか否かを返す。
	///
	/// 存在する場合は、サブクラスで true を返すようにオーバーライドすること。
	virtual bool HasOption() const;

	/// 「ファイルを保存」ダイアログの「オプション」ボタンのハンドラー
	void OnSetOption();

protected:
	/// サブクラスで必要に応じてダイアログを表示して、
	/// サブクラスのメンバーデータを設定する。
	virtual void DoShowOptionDialog();
};
