#pragma once
#include "TreeOptionsCtrlEx.h"

class CPPgTweaksMod3 : public CPropertyPage
{
	DECLARE_DYNAMIC(CPPgTweaksMod3)

public:
	CPPgTweaksMod3();
	virtual ~CPPgTweaksMod3();

// Dialog Data
	enum { IDD = IDD_PPG_TWEAKS_PP3 };
	
	void Localize(void);

protected:
	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);

	CTreeOptionsCtrlEx m_ctrlTreeOptions;
	bool m_bInitializedTreeOpts;

//////////////////////////////////////////////////////////////////////////////////////
// vars
protected:
	void    SetNull();

	//>> pP: ConChecker [eWombat]
	HTREEITEM	m_htiConcheckerGroup;
	HTREEITEM	m_htiConcheckerActive;
	HTREEITEM	m_htiConcheckerPingtypeRadio;
	HTREEITEM	m_htiConcheckerPingICMP;
	HTREEITEM	m_htiConcheckerPingRAW;
	HTREEITEM	m_htiConcheckerTTL;
	HTREEITEM	m_htiConcheckerPingtimeout;
	HTREEITEM   m_htiConCheckerOptGrp;
	bool		m_bConcheckerActive;
	int			m_iConcheckerPingtype;
	int			m_iConcheckerTTL;
	int			m_iConcheckerPingtimeout;
	//<< pP: ConChecker [eWombat]

	//>> pP: CReport
	HTREEITEM m_htiStatsGrp;
	HTREEITEM m_htiStatsOnExit;
	HTREEITEM m_htiStatsWithBBCodes;
	bool m_bStatsOnExit;
	bool m_bStatsWithBBCodes;
	//>> pP: CReport

	//>> pP: Slotlimiter
	HTREEITEM m_htiSlotlimiterGroup;
	HTREEITEM m_htiSlotlimiterSpeed;
	HTREEITEM m_htiSlotlimiterSlots;
	HTREEITEM m_htiSlotlimiter_None;
	HTREEITEM m_htiSlotlimiter_Slots;
	HTREEITEM m_htiSlotlimiter_Speed;
	int m_uSlotlimiterMode;
	int m_uSlotlimiterSpeed;
	int m_uSlotlimiterSlots;
	//<< pP: Slotlimiter

	//>> pP: AutoDownPrio
	HTREEITEM m_htiGrpAPrio;
	HTREEITEM m_htiGrpDynADP;
	HTREEITEM m_htiGrpPercADP;
	HTREEITEM m_htiOfficialPrio;
	HTREEITEM m_htiDynamicPrio;
	HTREEITEM m_htiPercentagePrio;
	HTREEITEM m_htiAPrioLog;
	HTREEITEM m_htiDynMaxHigh;
	HTREEITEM m_htiDynMaxNorm;
	HTREEITEM m_htiAPrioHigh;
	HTREEITEM m_htiAPrioNorm;
	bool m_bAPrioLog;
	int  m_iUseAPrio;
	int  m_iDynMaxHigh;
	int  m_iDynMaxNorm;
	int  m_iAPrioHigh;
	int  m_iAPrioNorm;
	//<< pP: AutoDownPrio

	//>> pP: IPFilterUpdate
	HTREEITEM  m_htiIPFGroup;
	HTREEITEM  m_htiIPFAutoUpdate;
	HTREEITEM  m_htiIPFAutoUpdateLocation;
	HTREEITEM  m_htiIPFAutoUpdateCustom;
	HTREEITEM  m_htiIPFPAWCIO;
	HTREEITEM  m_htiIPFUSER;
	HTREEITEM  m_htiIPFSelGrp;
	bool    m_bIPFAutoUpdate;
	int	    m_bIPFilterSelection;
	CString m_strIPFAutoUpdateCustom;
	//<< pP: IPFilterUpdate

	// ==> Emulate others by WiZaRd/Spike/shadow2004 - sFrQlXeRt
	bool m_bEmuMLDonkey;
	bool m_bEmueDonkey;
	bool m_bEmueDonkeyHybrid;
	bool m_bEmuShareaza;
	bool m_bEmuLphant;
	bool m_bLogEmulator;
	HTREEITEM m_htiEmulator;
	HTREEITEM m_htiEnableMLDonkey;
	HTREEITEM m_htiEnableeDonkey;
	HTREEITEM m_htiEnableeDonkeyHybrid;
	HTREEITEM m_htiEnableShareaza;
	HTREEITEM m_htiEnableLphant;
	HTREEITEM m_htiLogEmulator;
	// <== Emulate others by WiZaRd/Spike/shadow2004 - sFrQlXeRt

	//>> pP: LeecherSecure
	HTREEITEM m_htiAntileecherGrp;
	HTREEITEM m_htiAntiFincan;
	HTREEITEM m_htiUseHashLists;
	HTREEITEM m_htiAntiSuiBan;
	HTREEITEM m_htiAntiLeecherLog;
	bool m_bAntiFincan;
	bool m_bUseHashLists;
	bool m_bAntiSuiBan;
	bool m_bAntiLeecherLog;
	//<< pP: LeecherSecure
};
