/*===========================================================================*/
/* A3dKeyboardConfDlg.hpp : implementation of Keyboard Configuration Dialog*/
/**/
/* Version			1.0*/
/* Creation date	21/10/96*/
/* Author:			Philippe Touillaud*/
/**/
/* Revision date*/
/* Author:			*/
/**/
/* (c) Ubi Pictures 1996*/
/**/
/*===========================================================================*/
 
#ifndef __A3dKeyboardConfDlg_HPP__
#define __A3dKeyboardConfDlg_HPP__
 
/****************************************/
#ifndef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif
#endif
/****************************************/
 
#ifdef ACTIVE_EDITOR
 
#include "CPAKACnf.hpp"
#include "A3dVKeyT.hpp"
#include "CPAres.h"
 
/*///////////////////////////////////////////////////////////////////////////*/
/* A3d_KeyboardConfDlg dialog*/
class CPA_EXPORT A3d_KeyboardConfDlg : public CDialog
{
/* Construction*/
public:
	A3d_KeyboardConfDlg(CWnd* pParent, CString szName);   /* standard constructor*/
 
/* functions*/
	void mfn_vSetKAConf(const CPA_KeyActionConfiguration* p_oKAConfig)
				{	ASSERT(p_oKAConfig != NULL);
					m_p_oKAConfig = (CPA_KeyActionConfiguration*)p_oKAConfig;
				}
 
	void mfn_vSetStringList(CList<CString, CString> * p_oKeyStringList)
				{	ASSERT(p_oKeyStringList != NULL);
					m_p_oKeyStringList = p_oKeyStringList;
				}
 
	void mfn_vDetectKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
	void mfn_vResetsCombinatedKey(char cChar);
	
/* Dialog Data*/
	/*{{AFX_DATA(A3d_KeyboardConfDlg)*/
	enum { IDD = CPA_IDD_KEYBOARD_CONFIGURATION };
	CStatic	m_oUnmodifCStatic;
	A3d_VKeyTypedDetect	m_oVKDetector;
	CListBox	m_oKeyConfCListBox;
	BOOL	m_bCheckCtrl;
	BOOL	m_bCheckShift;
	BOOL	m_bCheckAlt;   /* CPA2 Corneliu Babiuc (ALT Key) 14-05-98 */
	UINT	m_uiCEditValue;
	/*}}AFX_DATA*/
 
/* Overrides*/
	/* ClassWizard generated virtual function overrides*/
	/*{{AFX_VIRTUAL(A3d_KeyboardConfDlg)*/
	protected:
	virtual BOOL OnInitDialog();
	virtual BOOL UpdateData(BOOL bSaveToClass);
	virtual void DoDataExchange(CDataExchange* pDX);    /* DDX/DDV support*/
	/*}}AFX_VIRTUAL*/
 
/* Implementation*/
protected:
 
	/* Generated message map functions*/
	/*{{AFX_MSG(A3d_KeyboardConfDlg)*/
	afx_msg void mfn_vOnCheckCtrl();
	afx_msg void mfn_vOnCheckShift();
	afx_msg void mfn_vOnCheckAlt(); /* CPA2 Corneliu Babiuc (ALT Key) 14-05-98 */
	afx_msg void mfn_vOnSelchangeConfList();
	/*}}AFX_MSG*/
	DECLARE_MESSAGE_MAP()
 
 
private:
	/* Members*/
    CString m_szName;       /* Name of dialog*/
 
		/* to be accessed only: DO NOT MODIFY ANYTHING THROUGH THIS*/
	CPA_KeyActionConfiguration* m_p_oKAConfig;
 
		/* the list, as it appears in the CListBox*/
	CList<CString, CString> *	m_p_oKeyStringList;
 
		/* for the combination management*/
	char m_cCombinatedKey;
	char m_cCurrentKey;
 
	/* functions*/
	void mfn_vBuildStringList(void);
	void mfn_vReadKeyDef(void);
	void mfn_vUpdateKeyDef(char cKey, char cFlags);
	BOOL mfn_bKeyIsUsed(char cKey ,char cFlags);
	void mfn_vShowKeyTyped(char cChar, char cFlags);
};
 
 
/*///////////////////////////////////////////////////////////////////////////*/
#endif /* ACTIVE_EDITOR*/
 
#endif /* __A3dKeyboardConfDlg_HPP__*/
