#pragma once
#include "Neo\GUI\CP\TreeOptionsCtrl.h" // gomez82 >>> - [TreeControl] 
#include "Neo/GUI/CP/TreeFunctions.h"
struct Category_Struct;

class CPPgMLOptions : public CPropertyPage
{
	DECLARE_DYNAMIC(CPPgMLOptions)

public:
	CPPgMLOptions();
	virtual ~CPPgMLOptions();

	void Localize(void);
	void LoadSettings();

	enum { IDD = IDD_PPG_MLOPTIONS };

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 OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
	afx_msg void OnSettingsChange() {SetModified();}
	CTreeOptionsCtrl m_ctrlTreeOptions;
	bool m_bInitializedTreeOpts;
	afx_msg LRESULT DrawTreeItemHelp(WPARAM wParam, LPARAM lParam);
	int	 m_bCreditSystem; //>>> CA
	HTREEITEM m_htiCreditSystem;
	
	//>>> CA
	HTREEITEM m_htiCSNone;
	HTREEITEM m_htiCSOffi;
	HTREEITEM m_htiCSAnalyzer;
#ifdef CB_MOD_FINECS_ENABLED
	HTREEITEM m_htiCSFine;
#endif
	//<<< CA
	// gomez82 >>> No PS for Leecher
	HTREEITEM m_htiNoPSGroup;
	bool	m_bPSNT;
	bool	m_bPSMT;
	bool	m_bPSFF;
	bool	m_bPSXSSpam;
	bool	m_bPSXSExpl;
	HTREEITEM m_htiPSNT;
	HTREEITEM m_htiPSFF;
	HTREEITEM m_htiPSXSSpam;
	HTREEITEM m_htiPSXSExpl;
	HTREEITEM m_htiPSMT;
	// gomez82 >>> No PS for Leecher
 	bool m_bSpreadBars; // Spread bars [Slugfiller/MorphXT] - Stulle
 	// gomez82 >>> HideOS & SOTN [Slugfiller/ MorphXT] - Stulle
	int m_iHideOS;
	bool m_bSelectiveShare;
	bool m_iShareOnlyTheNeed;
	// gomez82 >>> HideOS & SOTN [Slugfiller/ MorphXT] - Stulle
	HTREEITEM m_htiSpreadBars; // Spread bars [Slugfiller/MorphXT] - Stulle
	HTREEITEM m_htiPowerMenu;

	// gomez82 >>> HideOS & SOTN [Slugfiller/ MorphXT] - Stulle
	HTREEITEM m_htiHideOS;
	HTREEITEM m_htiSelectiveShare;
	HTREEITEM m_htiShareOnlyTheNeed;
	// gomez82 >>> HideOS & SOTN [Slugfiller/ MorphXT] - Stulle
	// gomez82 >>> RIC - [ReaskOnIDChange]
	UINT	m_uCheckIPChange;
	// gomez82 >>> RIC END
		// gomez82 >>> MM - [NeoMiniMule]
		HTREEITEM m_htiMiniMule;
			HTREEITEM m_htiAutoShowMiniMule;
			HTREEITEM m_htiUpdateHidenMiniMule;
			HTREEITEM m_htiMiniMuleTransparency;
		// gomez82 >>> MM END
		// gomez82 >>> IM - [InvisibelMode]
		HTREEITEM m_htiInvisibelMode;
			HTREEITEM m_htiInvisibelModeHotKeyModifier;
			HTREEITEM m_htiInvisibelModeHotKey;
		// gomez82 >>> IM END
		HTREEITEM m_htiUsePlusSpeedMeter; // gomez82 >>> PSM - [PlusSpeedMeter]
		HTREEITEM m_htiStaticTrayIcon; // gomez82 >>> STI - [StaticTray]
	bool	m_bUsePlusSpeedMeter; // gomez82 >>> PSM - [PlusSpeedMeter]
	bool	m_bStaticTrayIcon; // gomez82 >>> STI - [StaticTray]
		HTREEITEM m_htiNeoScoreSystem; // gomez82 >>> NFS - [NeoScoreSystem]

	// gomez82 >>> SI - [SysInfo]
	HTREEITEM m_htiDrawSysInfoGraph;
	HTREEITEM m_htiShowSysInfoOnTitle;
	// gomez82 >>> SI END
	// gomez82 >>> MM - [NeoMiniMule]
	bool	m_bAutoShowMiniMule;
	bool	m_bUpdateHidenMiniMule;
	int		m_iMiniMuleTransparency;
	// gomez82 >>> MM END
	// gomez82 >>> IM - [InvisibelMode]
	bool	m_bInvisibleMode;		
	UINT	m_iInvisibleModeHotKeyModifier;
	TCHAR	m_cInvisibleModeHotKey;
	// gomez82 >>> IM END
#ifdef XUC
	HTREEITEM m_htiXUC; // gomez82 >>> XUC - [ExtendedUdpCatch]
	HTREEITEM m_htiUDPCatch; // gomez82 >>> XUC - [ExtendedUdpCatch]
//	HTREEITEM m_htiXUCon; // gomez82 >>> XUC - [ExtendedUdpCatch]
//	HTREEITEM m_htiXUCvar; // gomez82 >>> XUC - [ExtendedUdpCatch]
	// gomez82 >>> XUC - [ExtendedUdpCatch]
	bool	m_bUDPCatch;
	int		m_iUDPCatch;
	// gomez82 >>> XUC END
	
#endif
	HTREEITEM m_htiCommunityOptions;
//Community on-off
	bool m_bCommunity;
    HTREEITEM m_htiCommunity;
//Community on-off
	// gomez82 >>> Colors
    //2BC+ Community-Orange
	bool m_bCommunityColor;
    HTREEITEM m_htiCommunityColor;
	HTREEITEM m_htiCommunityColorChoose;
    //2BC- Community-Orange
	COLORREF m_crCommunity;
	bool	m_bFriendSlotColor;
	HTREEITEM m_htiFriendSlotColorChoose;
	HTREEITEM m_htiFriendSlotColor;
	bool	m_bFriendColor;
	COLORREF m_crFriendSlot;
	HTREEITEM m_htiFriendColor;
	HTREEITEM m_htiFriendColorChoose;
	COLORREF m_crFriend;
	bool	m_bPowerShareColor;
	HTREEITEM m_htiPowerShareColor;
	HTREEITEM m_htiPowerShareColorChoose;
	COLORREF m_crPowerShare;
//	bool	m_bBadGuyColor;
//	HTREEITEM m_htiBadGuyColor;
//	bool	m_bLowIdColor;
//	HTREEITEM m_htiLowIdColor;
	// gomez82 <<< Colors	
	// gomez82 >>> RIC - [ReaskOnIDChange]
	HTREEITEM m_htiOnIDChange;
		HTREEITEM m_htiCheckIPChange;


bool m_bNeoTreeStyle;
HTREEITEM m_htiNeoTreeStyle;

	// gomez82 >>> PRSF - [PushSmallRareFiles]
	bool	m_bPushSmallFiles;
	int		m_iPushSmallFilesSize;
	bool	m_bPushRareFiles;
	int		m_iPushRareFilesValue;
	bool	m_bPushRatioFiles;
	int		m_iPushRatioFilesValue;
	// gomez82 >>> PRSF END
		// gomez82 >>> PRSF - [PushSmallRareFiles]
		HTREEITEM m_htiFilePushTweaks;
			HTREEITEM m_htiPushSmallFiles;
			HTREEITEM m_htiPushRareFiles;
			HTREEITEM m_htiPushRatioFiles;
		// gomez82 >>> PRSF END

	bool	m_bNeoScoreSystem; // gomez82 >>> NFS - [NeoScoreSystem]

	// gomez82 >>> Community visualization, Report hashing files, Log friendlist activities
	CString   m_sCommunityName;
	HTREEITEM m_htiCommunityName;
    HTREEITEM m_htiDisp;
	HTREEITEM m_htiL2HAC;
	bool m_bL2HAC;		

	// gomez82 >>> SI - [SysInfo]
	bool	m_bDrawSysInfoGraph;
	bool	m_bShowSysInfoOnTitle;
	// gomez82 >>> SI END
	
	void SetNull();

    

};
