////////////////////////////////////////////////////////////////////////////
// CTaEditFindDlg クラスのインタフェース宣言
//
////////////////////////////////////////////////////////////////////////////

#if !defined( TAEDITFINDDLG_H_INCLUDED_ )
#define TAEDITFINDDLG_H_INCLUDED_

#include "output/gui.h"

#include "TaEdit_std.h"
#include "TaEditDraw.h"
#include "TextEdit.h"

enum enumFINDTYPE
{
	FINDTYPE_NORMAL,	// 単純
	FINDTYPE_WILDCARD,	// ワイルドカード
	FINDTYPE_REGEX		// 正規表現
};

class CTaEditFindDlg :
	public CFindDlg
{
public:
	CTaEditFindDlg();
	~CTaEditFindDlg();

	// ダイアログを表示
	void ShowDlg();

protected:
	void OnFindExit( Widget argWgt, XtPointer user_data );
	void OnFindAllReplace( Widget argWgt, XtPointer user_data );
	void OnFindReplace( Widget argWgt, XtPointer user_data );
	void OnFindNext( Widget argWgt, XtPointer user_data );
	void OnCreate( Widget argWgt, XtPointer user_data );

	// テキスト編集オブジェクトを取得する
	VClsPtr< CTextEdit > GetTextEditorObj() const;

	enumFINDTYPE GetFindType() const;	// 検索の方法を取得
	void GetPatternStr( wstring *pStr ) const;	// 検索対象の文字列を取得
	void GetReplaceStr( wstring *pStr ) const;	// 置換後の文字列を取得

	// 入力された検索対象文字列を、正規表現に変換する
	void ConvertNormalPtnToRegexPtn( const wchar_t *pIptPtn, wstring *pRegexPtn ) const;
	void ConvertWildcardPtnToRegexPtn( const wchar_t *pIptPtn, wstring *pRegexPtn ) const;
};

#endif // TAEDITFINDDLG_H_INCLUDED_

