//
// MODULE - Sms Editor preferences
// $Workfile:   smedpref.h  $
// $Revision:   1.6  $
//
// Copyright(c) 1997 Symbian Ltd.
//

#if !defined(__SMEDPREF_H__)
#define __SMEDPREF_H__

#if !defined(__EIKDIALG_H__)
#include <eikdialg.H>
#endif

#if !defined(__EDITPREF_H__)
#include <editpref.h>
#endif

#if !defined(__GDI_H__)
#include <gdi.h>
#endif

#if !defined(__BADESCA_H__)
#include <badesca.h>
#endif


#if !defined(__SMUTHDR_H__)
#include <smuthdr.h>
#endif


//
// --- Preferences struct ---
class TSmsEditorPreferences : public TMailEditorPreferences
	{
public:
	TSmsEditorPreferences();
	TBool operator!=(const TSmsEditorPreferences& aRHS) const;

protected:
	virtual TUid PreferencesUid() const;
	IMPORT_C virtual void DoExternalizeL(RDictionaryWriteStream& aStore) const;
	IMPORT_C virtual void DoInternalizeL(RDictionaryReadStream& aStore);

public:
	TBuf<KMaxTypefaceNameLength>	iTypeFaceName;
	enum TSmedPrefsReplyToKeepText 
		{
		EDiscardText=EFalse,
		EKeepText=ETrue
		}							iKeepReplyText;
	};


//
// --- Preferences dialog ---
class CSmsEditorPreferencesDialog : public CEikDialog
	{
public:
	CSmsEditorPreferencesDialog(TSmsEditorPreferences& aPrefs);
	~CSmsEditorPreferencesDialog();
private:
	IMPORT_C virtual void PreLayoutDynInitL();
	IMPORT_C virtual TBool OkToExitL(TInt aButtonId);
private:
	TSmsEditorPreferences&			iPreferences;
	const TSmsEditorPreferences	iOriginalPreferences;
	CDesCArrayFlat*							iFontNameList;	
	};

//
// Message settings
class CSmsEditorMessageSettingsDialog : public CEikDialog
	{
public:
	CSmsEditorMessageSettingsDialog(TSmsMessageSettings& aSettings);
private:
	void PreLayoutDynInitL();
	TBool OkToExitL(TInt aButtonId);
	void HandleControlStateChangeL(TInt aControlId);
private:
	TSmsMessageSettings&			iPreferences;
	TBool							iCompressionSupported;		
	};


//
// Concat Query (when saving message) Dialog		
class CSmsEditorConcatQueryDialog : public CEikDialog
	{
public:
	CSmsEditorConcatQueryDialog(TInt aPDUs);
private:
	void PreLayoutDynInitL();
private:
	TInt	iPDUs;			// number of PDUs required to send message
	};


#endif // __SMEDPREF_H__
