#pragma once
#include "TreeOptionsCtrlEx.h"

class CPPgeMuleFuture : public CPropertyPage
{
	DECLARE_DYNAMIC(CPPgeMuleFuture)

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

// Dialog Data
	void Localize(void);

	enum { IDD = IDD_PPG_EMULEFUTURE}; 

protected:
	void	Nullify();

	CTreeOptionsCtrlEx m_ctrlTreeOptions;
	bool m_bInitializedTreeOpts;

	virtual void DoDataExchange(CDataExchange* pDX);
	virtual BOOL OnInitDialog();
	virtual BOOL OnApply();
	virtual BOOL OnKillActive();
	virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);

	DECLARE_MESSAGE_MAP()
	afx_msg void OnDestroy();
	afx_msg LRESULT OnTreeOptsCtrlNotify(WPARAM wParam, LPARAM lParam);
	afx_msg void OnHelp();
	afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);

//insert HTREEITEMS and variables here:
	HTREEITEM m_htiMoreTweaksGroup;

	HTREEITEM m_htiMultipleInstances;
	bool m_bMultipleInstances;

	HTREEITEM m_htiFUChunks;
	int	 m_uiFUChunks;

//>>> WiZaRd::Small File Slot
	HTREEITEM	m_htiSmallFileSize;
	int		m_uiSmallFileSize;
//<<< WiZaRd::Small File Slot

//>>> 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
#ifdef MOD_FUNCTIONS
//>>> WiZaRd::PNCheck/EMF
	HTREEITEM	m_htiEMFSupport;
	HTREEITEM	m_htiUserName;
	HTREEITEM	m_htiUserPW;
	HTREEITEM	m_htiCheckPNs;
	HTREEITEM	m_htiFriendsEntry;
	HTREEITEM	m_htiAutoUpdateFriends;

	CString		m_sUserName;
	CString		m_sUserPW;
	bool		m_bCheckPNs;
	bool		m_bFriendsEntry;
	bool		m_bAutoUpdateFriends;
//<<< WiZaRd::PNCheck/EMF
#endif
//>>> shadow2004::XPMenu [TPT]
	HTREEITEM	m_htiXPLabel;
	HTREEITEM	m_htiXPStyleLabel;
	HTREEITEM	m_htiXPStyle1;
	HTREEITEM	m_htiXPStyle2;
	HTREEITEM	m_htiXPStyle3;
	HTREEITEM	m_htiXPSideBar;
	HTREEITEM	m_htiXPBitmap;
	int			m_iXPMenuStyle;
	bool		m_bXPSideBar;
	bool		m_bXPBitmap;
//<<< shadow2004::XPMenu [TPT]
	HTREEITEM	m_htiDisplayGroup;
//>>> WiZaRd/shadow2004::DL in Bold
	HTREEITEM	m_htiDiBLabel;
	HTREEITEM	m_htiDiBNothing;
	HTREEITEM	m_htiDiBClients;
	HTREEITEM	m_htiDiBFiles;
	HTREEITEM	m_htiDiBBoth;
	int			m_iDownloadInBold;
//>>> WiZaRd/shadow2004::DL in Bold
//>>> 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]
//>>> WiZaRd::ResourceBars
	HTREEITEM	m_htiShowResouceBars;
	bool		m_bShowResourceBars;
//<<< WiZaRd::ResourceBars
//>>> WiZaRd::Intelligent SOTN
	HTREEITEM	m_htiSOTNRadio;
	HTREEITEM	m_htiSOTNON;
	HTREEITEM	m_htiSOTNOFF;
	HTREEITEM	m_htiSOTNPerFile;
	int			m_iSOTN;
//<<< WiZaRd::Intelligent SOTN
//>>> taz::Automatic shared files updater [MoNKi/Stulle/WiZaRd]
	HTREEITEM	m_htiASFUGroup;
	HTREEITEM	m_htiASFURadio;
	HTREEITEM	m_htiASFUOff;
	HTREEITEM	m_htiASFUOn;
	HTREEITEM	m_htiASFUSimple;
	HTREEITEM	m_htiASFUfreq1;
	HTREEITEM	m_htiASFUfreq2;
	int			m_uiDirectoryWatcherMode;
	int			m_uiASFUfreq1;
	int			m_uiASFUfreq2;
//<<< taz::Automatic shared files updater [MoNKi/Stulle/WiZaRd]
//>>> taz::One-queue-per-file
protected:
	HTREEITEM m_htiEnableMultiQueue;
	bool m_bEnableMultiQueue;
//<<< taz::One-queue-per-file
//>>> taz::Variable corrupted blocks ban threshold [Spike2]
protected:
	HTREEITEM	m_htiBanThreshold;
	int		m_iBanThreshold;
//<<< taz::Variable corrupted blocks ban threshold [Spike2]
//>>> taz::Quick start [TPT]
	// ==> Quick start [TPT] - Stulle
	bool m_bQuickStart;
	int m_iQuickStartMaxTime;
	int m_iQuickStartMaxConnPerFive;
	int m_iQuickStartMaxConn;
	// <== Quick start [TPT] - Stulle
//>>> taz::+server connect
	bool m_bQuickStartServerConnect;
	HTREEITEM m_htiQuickStartServerConnect;
//<<< taz::+server connect
	// ==> Quick start [TPT] - Stulle
	HTREEITEM m_htiQuickStartGroup;
	HTREEITEM m_htiQuickStart;
	HTREEITEM m_htiQuickStartMaxTime;
	HTREEITEM m_htiQuickStartMaxConnPerFive;
	HTREEITEM m_htiQuickStartMaxConn;
	// <== Quick start [TPT] - Stulle
//<<< taz::Quick start [TPT]
//>>> taz::Version Check
protected:
	bool		m_bModVersionCheck, m_bModBetaCheck;
	HTREEITEM	m_htiModVersionCheck, m_htiModBetaCheck;
//<<< taz::Version Check
};
