// MainDialogSettings_Tree.h : header file
//
#if !defined(_MAINDIALOGSETTINGS_TREE_H_)
#define _MAINDIALOGSETTINGS_TREE_H_

#include "PropertyEditorDlg.h"

/////////////////////////////////////////////////////////////////////////////
// CMainDialogSettings_Tree dialog
class CXmlMainDialogTree;

class CMainDialogSettings_Tree : public CPropertyEditorDlg
{
// Construction
public:
	CMainDialogSettings_Tree(CWnd* pParent = NULL);   // standard constructor

// Dialog Data
	//{{AFX_DATA(CMainDialogSettings_Tree)
	enum { IDD = IDD_MAIN_DIALOG_SETTINGS_TREE };
	CTreeCtrl	treePreview_;
	CStatic	lblPreview_;
	CStatic	lblIndent_;
	CEdit	txtIndent_;
	CButton	chkSingleNodeExpand_;
	CButton	chkShowSelectionAlways_;
	CButton	chkHideRoot_;
	CButton	chkHasLines_;
	CButton	chkHasButtons_;
	CButton	chkFullRowSelect_;
	CButton	chkLinesAtRoot_;
	//}}AFX_DATA

	void SetData(CXmlBaseElement* element);
	void StoreData();
	void OnDataUpdate();

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CMainDialogSettings_Tree)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(CMainDialogSettings_Tree)
	afx_msg void OnPaint();
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	afx_msg void OnSize(UINT nType, int cx, int cy);
	virtual BOOL OnInitDialog();
	afx_msg void OnChkSingleNodeExpand();
	afx_msg void OnChkSelectionAlways();
	afx_msg void OnChkLinesAtRoot();
	afx_msg void OnChkHideRoot();
	afx_msg void OnChkHasLines();
	afx_msg void OnChkHasButtons();
	afx_msg void OnChkFullRowSelect();
	afx_msg void OnChangeIndent();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP();

	void UpdateWindowSize();
	void UpdatePreview();
	void BuildPreview();

	CXmlMainDialogTree* settings_;
	bool initialized_;
	CImageList imageList_;
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(_MAINDIALOGSETTINGS_TREE_H_)
