// classinfodlg_gui.h : header file
//

#if !defined(_CLASSINFODLG_GUI_H_)
#define _CLASSINFODLG_GUI_H_

#include "ClassInfoDlg_Gui_None.h"
#include "ClassInfoDlg_Gui_FlatList.h"
#include "ClassInfoDlg_Gui_CatList.h"
#include "ClassInfoDlg_Gui_Grid.h"
#include "ClassInfoDlg_Gui_CustomForm.h"
#include "resource.h"
#include "PropertyEditorDlg.h"

class CXmlClassInfo;

/////////////////////////////////////////////////////////////////////////////
// CClassInfoDlg_Gui dialog

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

// Dialog Data
	//{{AFX_DATA(CClassInfoDlg_Gui)
	enum { IDD = IDD_CLASSINFO_GUI };
	CComboBoxEx	cboRenderingMode_;
	//}}AFX_DATA

public:
	void StoreData();
	void SetData(CXmlBaseElement* element);

	void OnDataUpdate();

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

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(CClassInfoDlg_Gui)
	virtual BOOL OnInitDialog();
	afx_msg void OnSelChangeCboClassRenderingMode();
	afx_msg void OnSize(UINT nType, int cx, int cy);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

	void UpdateChildSize(CWnd& child);		

	CClassInfoDlg_Gui_None guiNoneDlg_;
	CClassInfoDlg_Gui_FlatList guiFlatListDlg_;
	CClassInfoDlg_Gui_CatList guiCatListDlg_;
	CClassInfoDlg_Gui_Grid guiGridDlg_;
	CClassInfoDlg_Gui_CustomForm guiCustomFormDlg_;

	CWnd* lastSelectedChild_;

	CXmlClassInfo* classInfo_;

	bool initialized_;
};

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

#endif // !defined(_CLASSINFODLG_GUI_H_)
