/*-----------------------------------------------------------------------------
[名称]	CommandDelete.h
[概要]	文字削除コマンドクラスのヘッダ
[備考]	なし
[履歴]	2003-02-27	NC		コメント付加(moralog)
-----------------------------------------------------------------------------*/
#if !defined(AFX_COMMANDDelete_H_INCLUDED_)
#define AFX_COMMANDDelete_H_INCLUDED_

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


//-----------------------------------------------------------------------------
// インクルード・不完全定義
//-----------------------------------------------------------------------------
#include "ICommand.h"


/*-----------------------------------------------------------------------------
[名称]	文字削除コマンドクラス
[用途]	文字削除に関する操作の実行、取り消し機能を提供する。
[備考]	使用方法：ICommandの使用方法を参照。
-----------------------------------------------------------------------------*/
class CCommandDelete : public ICommand  
{
public:
	// 生成・破棄
	CCommandDelete();
	virtual ~CCommandDelete();

public:
	// メモリを確保して複製
	virtual ICommand*	Duplicate();

	// 属性をコピー
	virtual void		Copy( ICommand& cmdSrc );

	// 実行
	virtual BOOL		Execute( CShitarabianDoc* pDoc );

	// 取り消し
	virtual BOOL		UnExecute( CShitarabianDoc* pDoc );

	// 属性の設定
	void SetAttribute(
		long		idxStartRow,			// 削除開始位置 [行] (-)
		long		idxStartColumn,			// 削除開始位置 [列] (-)
		long		idxEndRow,				// 削除終了位置 [行] (-)
		long		idxEndColumn			// 削除終了位置 [列] (-)
	);

protected:
	CString		m_strDelete;				// 削除された文字列 [改行文字で連結されている] (-)
	long		m_idxStartRow;				// 削除開始位置 [行] (-)
	long		m_idxStartColumn;			// 削除開始位置 [列] (-)
	long		m_idxEndRow;				// 削除終了位置 [行] (-)
	long		m_idxEndColumn;				// 削除終了位置 [列] (-)
};

#endif // !defined(AFX_COMMANDDelete_H_INCLUDED_)
