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

class MGCommandBase;

/// @class INamedTargetTool
/// 名前付き XXXX コマンドの共通インターフェイス。
class INamedTargetTool{
public:

	/// 名前付き XXXX 一覧を返す。
	/// 与えられた順番そのままで、ダイアログのリストにセットされる。
	virtual void List(std::vector<CString>& names) = 0;

	/// 新規設定を保存するか、既存設定の上書き保存をする。
	virtual void Save(const CString& strName) = 0;

	/// 既存の設定を復元する。
	virtual void Restore(const CString& strName) = 0;

	/// 既存の設定を削除する。
	virtual void Delete(const CString& strName) = 0;

	/// 既存の設定の名前を変更する。
	virtual void Rename(const CString& strOldName, const CString& strNewName) = 0;
};
