/*************************************************************************\
* "$RCSfile: CDlgCamExpert.hpp,v $"                                       *
***************************************************************************
* Information by CVS or VSS:                                              *
*     Last check in on: $Date: 2010/06/14 08:47:23 $                      *
*     by                $Author: schluckebier $
*     Revision        : $Revision: 1.12 $                                 *
\*************************************************************************/
/*! \file CDlgCamExpert.hpp
*	\brief Header CDlgCamExpert Class
**************************************************************************/

/*************************************************************************/
/*! @brief Camera expert settings dialog class
**************************************************************************/
class CDlgCamExpert: public CDlg
{
protected:
	enum eDlgCamEx_ID
	{
	// 0x100 <= ICON <= 0x1FF
		ID_CAMEX_OK = 0x100,
		ID_CAMEX_CANCEL
	};

private:
	CDlgCamExpert(int x, int y, int Width, int Height);
	~CDlgCamExpert();
	static CDlgCamExpert *m_pThis;

public:
	static CDlgCamExpert *CreateInstance(int x, int y, int Width, int Height);
	//! Gets CDlgCamExpert instance.
	static CDlgCamExpert *GetInstance() { return m_pThis; }
	static void DisposeInstance();
	static int GetPropMinMax(int Port, TOKEN t, PROPERTY *pProp);
	static int GetChildren(int Port, TOKEN t, PROPERTY *PropertyList);
	int OnUserIO(int nKey);
	int ShowProperty(char *PropertyName);

protected:
	static PROPERTY m_PropertyList[];

	int ShowChildren(char *PropertyName);
	int TestEXE();
	int PFFW_Update();
	int BuildPropListText();

	int m_Sel;
	int m_NrOfProperties;
	char *m_PropText;
};

/*************************************************************************/
