// memberinfodlg_gui.h : header file
//
#if !defined(_MEMBERINFODLG_GUI_H_)
#define _MEMBERINFODLG_GUI_H_

#include "PropertyEditorDlg.h"
#include "CfgComboBox.h"
#include "MemberInfoDlg_Gui_LongHex.h"

/////////////////////////////////////////////////////////////////////////////
// CMemberInfoDlg_Gui dialog

class CXmlMemberInfo;

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

// Dialog Data
	//{{AFX_DATA(CMemberInfoDlg_Gui)
	enum { IDD = IDD_MEMBERINFO_GUI };
	CButton	chkReadOnly_;
	CCfgComboBox	cboDisplayMode_;
	//}}AFX_DATA

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

	void OnOK();
	void OnCancel();

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

// Implementation
protected:

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

	
	void StoreStringGuiInfo();
	void StoreLongGuiInfo();
	void StoreBooleanGuiInfo();
	void StoreDoubleGuiInfo();

	void DisplayStringGuiInfo();
	void DisplayLongGuiInfo();
	void DisplayBooleanGuiInfo();
	void DisplayDoubleGuiInfo();

	void UpdateWindowSize();
	void DisplayData();
	void SwitchChild(CPropertyEditorDlg* oldChild, CPropertyEditorDlg* newChild);
	void UpdateReadOnlyCheckBox();

	CXmlMemberInfo* memberInfo_;
	enDataType currentDataType_;
	CPropertyEditorDlg* activeChild_;
	bool initialized_;
	CMemberInfoDlg_Gui_LongHex longHexDlg_;
};

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

#endif // !defined(_MEMBERINFODLG_GUI_H_)
