/********************************************************************/
/* Copyright (c) 2019 System fugen G.K. and Yuzi Mizuno          */
/* All rights reserved.                                             */
/********************************************************************/
/********************************************************************/
/**
 * @file PropertyTool.h
 * @brief クラス MGPropertyTool の宣言
 */
#pragma once

#include "Common/CommandBase.h"

/// @class MGPropertyTool PropertyTool.h "ToolCmd/PropertyTool.h"
/// [ツール＞オプション] コマンドクラス
class MGPropertyTool : public MGCommandBase
{
	UINT m_nIDD; ///< 最初に開いているプロパティーページのリソース ID

public:
	/// コンストラクター
	/// @param[in] pDoc コマンド対象ドキュメント
	/// @param[in] nCmdID コマンド ID
	/// @param[in] nIDD 最初に開いているプロパティーページのリソース ID
	MGPropertyTool(fugenDoc* pDoc, UINT nCmdID, UINT nIDD = 0);
	bool can_break_into()const{return true;};

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

/// 適切な状態で MGPropertyTool オブジェクトを生成する。
/// @param[in] pDoc コマンド対象ドキュメント
/// @param[in] nCmdID コマンド ID
/// @return MGPropertyTool オブジェクト
/// @throws 特別な例外を投げない。
MGCommandBase* CreatePropertyTool(fugenDoc* pDoc, UINT nCmdID);
