// EdIRBeEn.hpp : header file
//

#ifndef _EDIRBEEN_HPP_
#define _EDIRBEEN_HPP_

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

//////////////////////////////////////////////////////////////////
// class CPA_EdIR_MainBehaviour
//////////////////////////////////////////////////////////////////

#include "_Ainterf.hpp"
//BEGIN ROMTEAM Cristi Petrescu 98-05-
#include "edirdbls.hpp"
//END ROMTEAM Cristi Petrescu 98-05-

class CPA_EdIR_Behaviour;
class CPA_EdIR_DiagView;
class	CPA_Actor;

class CPA_EdIR_MainBehaviour : public CPA_BaseObject
{
	private:
		BOOL								m_bHasBeenModified;

	public:
		CPA_EdIR_Behaviour												*m_pclBehaviour;
		//CString																		m_csName;
		CRect																			m_crPosition;
		CString																		m_csText;
		CList<CPA_BaseObject *,CPA_BaseObject *>	m_clListOfDependencies;
		//BEGIN ROMTEAM Cristi Petrescu 98-04-
		long m_lInfo;
		//END ROMTEAM Cristi Petrescu 98-04-
		//BEGIN ROMTEAM Cristi Petrescu 98-05-
		CPA_EdIR_DebugInfoList m_clDebugInfoList;
		//END ROMTEAM Cristi Petrescu 98-05-

	public:
		//Empty constructor for load
		CPA_EdIR_MainBehaviour(CPA_Actor *);

		//Constructor
		CPA_EdIR_MainBehaviour(CPA_Actor *,CString,CRect,CString,CPA_EdIR_Behaviour *pclBehaviour=NULL);

		//Copy constructor
		CPA_EdIR_MainBehaviour(CPA_Actor *,CPA_EdIR_MainBehaviour &);

		//Destructor;
		~CPA_EdIR_MainBehaviour();	
		
		//virtual from CPA_BaseObject
    virtual	long								GetDataType(void);
    virtual	void								*GetData(void);
		virtual	tdeMissingCriteria	fn_eCheckUnicity(const CString);

		void	m_fn_vUpdateBehaviour(CPA_EdIR_DiagView *,BOOL);

		BOOL	m_fn_bHasBeenModified();
		void	m_fn_vSetModified(BOOL);

		//for printing
		CString	m_fn_csGetBehaviourTitle();
		long		m_fn_lGetNbPages(long,long);
		long		m_fn_lGetNbLines();
		CString	m_fn_csGetTextToPrint(long,long,long);
		CString	m_fn_csGetTextBetweenLines(long,long);

		//BEGIN ROMTEAM Cristi Petrescu 98-05-
		// To manipulate the Debug list
		void m_fn_vClearExecutedNodes (void);
		//END ROMTEAM Cristi Petrescu 98-05-
};

#endif //_EDIRBEEN_HPP_
