// EdIRBtVw.hpp : header file
//

#ifndef _EDIRBTVW_HPP_
#define _EDIRBTVW_HPP_

#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000

#include "EdIRRes.h"

typedef enum tdeBehaviourModeView_
{
	ListView,
	DiagView
} tdeBehaviourModeView;

typedef enum tdeEditState_
{
	EditIntell,
	EditReflex,
	EditDecl,
	// BEGIN CPA2 Cristi Petrescu 98-03-
	EditMacro,
	// END CPA2 Cristi Petrescu 98-03-
	// BEGIN ROMTEAM CPA2 Cristi Petrescu 98-04-
	EditSubr
	// END ROMTEAM CPA2 Cristi Petrescu 98-04-
} tdeEditState;

//Stefan Dumitrean 8-07-98 ( macro color )
class CPA_EdIR_MainBehaviourList;
//End Stefan Dumitrean 8-07-98 ( macro color )
/////////////////////////////////////////////////////////////////////////////
// class CPA_EdIR_ButtonView
/////////////////////////////////////////////////////////////////////////////

class CPA_EdIR_ButtonView : public CFormView
{
	protected:
		CPA_EdIR_ButtonView();	// protected constructor used by dynamic creation
		DECLARE_DYNCREATE(CPA_EdIR_ButtonView)

	// Form Data
	public:
		//{{AFX_DATA(CPA_EdIR_ButtonView)
		enum { IDD = IDD_IR_BUTTONVIEW };
			// NOTE: the ClassWizard will add data members here
		//}}AFX_DATA

	// Attributes
	private:
		BOOL									m_bAreEnable;
		tdeEditState					m_tdeEditState;
		tdeBehaviourModeView	m_tdeBehaviourModeView;
		BOOL									m_bMustStopProcess;
		BOOL									m_bProcessInProgress;
		CToolTipCtrl					*m_pclToolTip;

	public:

	// Operations
	public:
		tdeEditState					m_fn_tdeGetEditState();
//ANNECY CB
//		void									m_fn_vSetEditState(tdeEditState);
		void									m_fn_vSetEditState(tdeEditState, BOOL State = TRUE);
//END
		tdeBehaviourModeView	m_fn_tdeGetViewMode();
		void									m_fn_vSetViewMode(tdeBehaviourModeView);
		void									m_fn_vEnableButtons(BOOL);
		BOOL									m_fn_bGetButtonsSate();
		BOOL									m_fn_bMustStopProcess();
//Stefan Dumitrean 30-06-98
//need to call this from CPA_EdIR_EditCtrl
		void									m_fn_vProcessIA();
//End Stefan Dumitrean 30-06-98

	private:
		void	m_fn_vUpdateDisplay();
//Stefan Dumitrean 8-07-98 ( macro color )
		void	m_fn_vRefreshColorInAllBehaviours();
		void    m_fn_vRefreshColorInListBehaviour( CPA_EdIR_MainBehaviourList * p_clMBList);
//End Stefan Dumitrean 8-07-98 ( macro color )

	// Overrides
		// ClassWizard generated virtual function overrides
		//{{AFX_VIRTUAL(CPA_EdIR_ButtonView)
	public:
			virtual void OnInitialUpdate();
	protected:
			virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
			// BEGIN ROMTEAM Cristi Petrescu 99-01- debug
			virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);
			// END ROMTEAM Cristi Petrescu 99-01- debug
	//}}AFX_VIRTUAL

	// Implementation
	protected:
		virtual ~CPA_EdIR_ButtonView();

#ifdef _DEBUG
		virtual void AssertValid() const;
		virtual void Dump(CDumpContext& dc) const;
#endif

		// Generated message map functions
		//{{AFX_MSG(CPA_EdIR_ButtonView)
		afx_msg void OnDestroy();
		afx_msg void OnSize(UINT nType, int cx, int cy);
		afx_msg void OnButtonProcess();
		afx_msg void OnButtonProcessAll();
// Shaitan FastC (16/06/98) {
		afx_msg void OnButtonGenerateFastC();
//End Shaitan FastC }
// Shaitan Debug (04/08/98) {
		afx_msg void OnButtonDebug();
//End Shaitan Debug }
// Shaitan U64 (30/09/98) {
		afx_msg void OnButtonU64();
//End Shaitan U64 }
		afx_msg void OnButtonOneRule();
// Shaitan => Macros to subroutines
		afx_msg void OnButtonMacroToSubrAll();
		afx_msg void OnButtonMacroToSubrOne();
// End Shaitan => Macros to subroutines
		afx_msg void OnButtonStop();
		afx_msg void OnButtonCheck();
		/* CHRISTOPHE QUICK SAVE MODIFICATIONS */
		afx_msg void OnButtonQuickSave();
		/* END CHRISTOPHE QUICK SAVE MODIFICATIONS */
		afx_msg void OnButtonSaveAll();
		afx_msg void OnButtonChangeViewMode();
		afx_msg void OnButtonNewBehaviour();
		afx_msg void OnButtonPrint();
		afx_msg void OnRadioDecl();
		// BEGIN CPA2 Cristi Petrescu 98-03-
		afx_msg void OnRadioMacro();
		// END CPA2 Cristi Petrescu 98-03-
		// BEGIN ROMTEAM CPA2 Cristi Petrescu 98-04-
		afx_msg void OnRadioSubr();
		// END ROMTEAM CPA2 Cristi Petrescu 98-04-
		afx_msg void OnRadioIntel();
		afx_msg void OnRadioReflex();
		afx_msg void OnButtonConstant();
		afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
		afx_msg BOOL OnToolTipNotify(UINT id, NMHDR * pTTTStruct, LRESULT * pResult);
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
};

#endif //_EDIRBTVW_HPP_
