// EIKFINDD.H
//
// Copyright (c) 1997-1999 Symbian Ltd.  All rights reserved.
//

#if !defined(__EIKFINDD_H__)
#define __EIKFINDD_H__

#if !defined(__EIKDIALG_H__)
#include <eikdialg.h>
#endif

#if !defined(__BADESCA_H__)
#include <badesca.h>
#endif

#include <eikdef.hrh>

enum TReplaceOption
    {
	ENoReplace,
    EReplaceOnce,
    EReplaceAll,
	EReplaceSkip
    };

struct SEdwinFindModel
    {
    TInt iFlags; // TEdwinFindFlags
    TBuf<EEikEdwinFindStringMaxLen> iText;
    TBuf<EEikEdwinFindStringMaxLen> iReplaceText;
	TReplaceOption iReplaceOption;
    };

class CEikEdwinFindDialog : public CEikDialog  
	{
public:
	IMPORT_C CEikEdwinFindDialog(SEdwinFindModel* aModel, CDesCArray* aFindList);
private:
	void PreLayoutDynInitL();
    TBool OkToExitL(TInt aButtonId);
private:
	SEdwinFindModel* iModel;
 	CDesCArray* iFindList;
	};

//
// Replace dialog class
//

class CEikEdwinReplaceDialog : public CEikDialog  
	{
public:
	IMPORT_C CEikEdwinReplaceDialog(SEdwinFindModel* aModel, CDesCArray* aFindList, CDesCArray* aReplaceList);
private:
	void PreLayoutDynInitL();
    TBool OkToExitL(TInt aButtonId);
private:
	SEdwinFindModel* iModel;
 	CDesCArray* iFindList;
 	CDesCArray* iReplaceList;
	};

//
// Replace option dialog class
//

class CEikEdwinReplaceOptionDialog : public CEikDialog  
	{
public:
	IMPORT_C CEikEdwinReplaceOptionDialog(CEikGlobalTextEditor* aEdwin,SEdwinFindModel* aModel);
private:
	void SetSizeAndPositionL(const TSize& aSize);
    TBool OkToExitL(TInt aButtonId);
	void ReplacePressed();
private:
	CEikGlobalTextEditor* iEdwin;
	SEdwinFindModel* iModel;
	};

#endif
