#pragma once

#include "EMF/TreeControl/TreeOptionsCtrl.h" //==> dlarge TreeControl
#include "Preferences.h"
#include "OtherFunctions.h"

class CPPgeMuleFuture : public CPropertyPage
{
	DECLARE_DYNAMIC(CPPgeMuleFuture)

public:
	CPPgeMuleFuture();
	virtual ~CPPgeMuleFuture();


	enum { IDD = IDD_PPG_EMULEFUTURE}; 

protected:

	CTreeOptionsCtrl m_ctrlTreeOptions; //==> dlarge TreeControl
	bool m_bInitializedTreeOpts;

	HTREEITEM m_htiMoreTweaksGroup;

	HTREEITEM m_htiMultipleInstances;
	bool m_bMultipleInstances;

	HTREEITEM m_htiFUChunks;
	int	 m_uiFUChunks;



//>>> WiZaRd::AutoHL
	HTREEITEM m_htiAutoHL;

	HTREEITEM m_htiUseAutoHLRadio;
	HTREEITEM m_htiUseAutoHLPerFile;
	HTREEITEM m_htiUseAutoHLOn;
	HTREEITEM m_htiUseAutoHLOff;	
	int m_iUseAutoHL;

	HTREEITEM m_htiMaxSources;
	int	 m_iMaxSources;

	HTREEITEM m_htiMaxPerFileSources;
	int	 m_iMaxPerFileSources;

	HTREEITEM m_htiMinPerFileSources;
	int	 m_iMinPerFileSources;

	HTREEITEM m_htiAHLUpdate;
	int	 m_iAHLUpdate;
//<<< WiZaRd::AutoHL

//>>> Spike2::Emulate other
	HTREEITEM	m_htiEmulateGroup;
	
	HTREEITEM	m_htiEmulateEdonkey;
	bool		m_bEmulateEdonkey;
	HTREEITEM	m_htiEmulateEdonkeyHybrid;
	bool		m_bEmulateEdonkeyHybrid;
	HTREEITEM	m_htiEmulateMLdonkey;
	bool		m_bEmulateMLdonkey;
	HTREEITEM	m_htiEmulateShareaza;
	bool		m_bEmulateShareaza;
	HTREEITEM	m_htiEmulateLphant;
	bool		m_bEmulateLphant;
//<<< Spike2::Emulate other

	HTREEITEM	m_htiDisplayGroup;
//>>> shadow2004::Toolbar
	HTREEITEM	m_htiTLabel;
	HTREEITEM	m_htiTLabelOff;
	HTREEITEM	m_htiTLabelOn;
	HTREEITEM	m_htiTLabelActive;
	HTREEITEM	m_htiTLabelOver;
	HTREEITEM	m_htiTLabelMulti;
	int			m_iToolbarLabelStyle;
//<<< shadow2004::Toolbar

//>>> WiZaRd::IntelliFlush
	HTREEITEM	m_htiSystemGroup;
	HTREEITEM	m_htiFileBufferGroup;
	HTREEITEM	m_htiFileBufferSize;
	HTREEITEM	m_htiFileBufferTime;
	HTREEITEM	m_htiIntelliFlushCheck;
	int			m_iFileBufferSize;
	int			m_iFileBufferTime;
	bool		m_bIntelliFlush;
//<<< WiZaRd::IntelliFlush
//>>> WiZaRd::ConChecker [eWombat]
	HTREEITEM	m_htiConcheckerGroup;
	HTREEITEM	m_htiConcheckerActive;
	HTREEITEM	m_htiConcheckerPingtypeRadio;
	HTREEITEM	m_htiConcheckerPingICMP;
	HTREEITEM	m_htiConcheckerPingRAW;
	HTREEITEM	m_htiConcheckerTTL;
	HTREEITEM	m_htiConcheckerPingtimeout;
	bool		m_bConcheckerActive;
	int			m_iConcheckerPingtype;
	int			m_iConcheckerTTL;
	int			m_iConcheckerPingtimeout;
//<<< WiZaRd::ConChecker [eWombat]

//>>> shadow2004::IP2Country [EastShare]
	HTREEITEM	m_htiI2CGroup;
	HTREEITEM	m_htiI2C2Letter;
	HTREEITEM	m_htiI2C3Letter;
	HTREEITEM	m_htiI2CFullCaption;
	HTREEITEM	m_htiI2CShowFlag;
	int			m_iI2CCaption;
	bool		m_bI2CShowFlag;
//<<< shadow2004::IP2Country [EastShare]

//>>> WiZaRd::Payback first
	HTREEITEM	m_htiPaybackFirstRadio;
	HTREEITEM	m_htiPaybackDisabled;
	HTREEITEM	m_htiPaybackConst;
	HTREEITEM	m_htiPaybackVar;
	HTREEITEM	m_htiPaybackAuto;
	int			m_iPaybackFirst;
//<<< WiZaRd::Payback first

//>>> JvA::SLS [enkeyDEV]
	HTREEITEM	m_htiSLSGroup;
	HTREEITEM	m_htiSLSCheck;
	HTREEITEM	m_htiSLSActivationLimit;
	HTREEITEM	m_htiSLSSaveValue;
	bool		m_bSLSCheck;
	int			m_iSLSActivationLimit;
	int			m_iSLSSaveValue;
//<<< JvA::SLS [enkeyDEV]

//>>> shadow2004::FDC [BlueSonicBoy]
	HTREEITEM	m_htiFDCGroup;
	HTREEITEM	m_htiFDCEnabled;
	HTREEITEM	m_htiFDCDouble;
	HTREEITEM	m_htiFDCSensitivity;
	bool		m_bFDCEnabled;
	bool		m_bFDCDouble;
	int			m_iFDCSense;
//<<< shadow2004::FDC [BlueSonicBoy]

//>>> WiZaRd::minRQR [WiZaRd]
	HTREEITEM	m_htiMinRQR;
	bool		m_bUseMinRQR;
//<<< WiZaRd::minRQR [WiZaRd]

	afx_msg void OnDestroy();
	afx_msg LRESULT OnTreeOptsCtrlNotify(WPARAM wParam, LPARAM lParam);
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

DECLARE_MESSAGE_MAP()
public:
	void Localize(void);	
	void LoadSettings(void);
	virtual BOOL OnApply();
	virtual BOOL OnInitDialog();
	virtual BOOL OnKillActive();

};
