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

class CGLNamedViewDlg;

/// @class MGNamedViewTool
/// 「名前付きビュー」コマンド。
class MGNamedViewTool : public MGCommandBase, public INamedTargetTool{

	fugenView* m_pView; ///< 対象となるビュー

public:
	/// コンストラクター
	/// @param[in] pDoc コマンド対象ドキュメント
	explicit MGNamedViewTool(fugenDoc* pDoc);

	virtual MGCommandBase* initial_clone(fugenDoc* pDoc)const;
	virtual bool initiate_tool();

	// INamedTargetTool 実装

	virtual void List(std::vector<CString>& names);
	virtual void Save(const CString& strName);
	virtual void Restore(const CString& strName);
	virtual void Delete(const CString& strName);
	virtual void Rename(const CString& strOldName, const CString& strNewName);
};
