// MemberInfoDlg_ValidationStaticEnum.h : header file
//
#if !defined(_MEMBERINFODLG_VALIDATIONSTATICENUM_H_)
#define _MEMBERINFODLG_VALIDATIONSTATICENUM_H_

#include "PropertyEditorDlg.h"
#include "cmTable.h"
#include "enums.h"

/////////////////////////////////////////////////////////////////////////////
// CMemberInfoDlg_ValidationStaticEnum dialog
class CXmlMemberInfo;
class cmTableRow;

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

// Dialog Data
	//{{AFX_DATA(CMemberInfoDlg_ValidationStaticEnum)
	enum { IDD = IDD_MEMBERINFO_VALIDATION_STATICENUM };
	CStatic	lblEnumPrefix_;
	CButton	cmdRemove_;
	CButton	cmdInsert_;
	CButton	cmdAppend_;
	//}}AFX_DATA

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

	void OnOK(){};
	void OnCancel(){};

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

// Implementation
protected:

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

	void UpdateWindowSize();
	cmTableRow* InsertRow(int rowIndex, bool redraw);
	void RenumberRows(bool redraw);
	void UpdateValueColumn();
	void DisplayData();

	CXmlMemberInfo* memberInfo_;
	cmTable table_;

	bool initialized_;
	enDataType lastDataType_;
};

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

#endif // !defined(_MEMBERINFODLG_VALIDATIONSTATICENUM_H_)
