////////////////////////////////////////////////////////////////////////////
// CReplaceAll クラスのインタフェース宣言
//
// テキストの「全て置換」処理用のワーカースレッド
////////////////////////////////////////////////////////////////////////////

#if !defined( REPLACEALL_H_INCLUDED_ )
#define REPLACEALL_H_INCLUDED_

#include "TaEdit_std.h"

#include "regex/SRegex.h"
#include "LineData.h"
#include "TextMatchLib.h"
#include "TaEditProcessingDlg.h"
#include "ConfigInfo.h"
#include "FindText.h"

class CReplaceAll : public CFindText
{
public:
	CReplaceAll();
	~CReplaceAll();

	// 情報を設定する
	bool SetInfo(
		CTaEditDoc *pArgDoc,
		const wstring &rArgPtn,
		VClsPtr< CConfigInfo > pArgConf,
		const wstring& argAfterStr
	);

	// 検索を開始する
	virtual bool start();

	// 検索用スレッド
	virtual void run();

	// 割り込み
	virtual void Interrupt();

	// 見つかったか否かを取得
	bool IsMatched() const;

protected:
	CTaEditDoc *pUnConstDoc;
	volatile bool IsInterrupted;	// 割り込まれたか否か
	const wstring *pAfterString;	// 置換後の文字列
};

#endif // REPLACEALL_H_INCLUDED_

