/*-----------------------------------------------------------------------------
[名称]	CommandModify.h
[概要]	行差し替えコマンドクラスのヘッダ
[備考]	なし
[履歴]	2003-03-10	NC		新規作成(moralog)
-----------------------------------------------------------------------------*/
#if !defined(AFX_COMMANDMODIFY_H_INCLUDED_)
#define AFX_COMMANDMODIFY_H_INCLUDED_

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


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


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

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

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

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

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

	// 属性の設定
	void SetAttribute(
		long		idxRow,					// 差し替え対象位置 [行] (-)
		CString&	strNewLine				// 差し替え文字列 [-] (-)
	);

protected:
	long		m_idxRow;					// 差し替え対象位置 [行] (-)
	CString		m_strNewLine;				// 差し替え文字列 [改行文字で連結されている] (-)
	CString		m_strOldLine;				// 削除された文字列 [-] (-)
	long		m_nLine;					// 差し替え文字列行数 [-] (-)
};

#endif // !defined(AFX_COMMANDMODIFY_H_INCLUDED_)
