// EDACVwAc.hpp : header file
/////////////////////////////////////////////////////////////////////////////
#ifndef _CPACACVW_HPP_
#define _CPACACVW_HPP_

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

#include "EdAcIRes.h"
#include "EDACGrBt.hpp"

#include "Defines.hpp"

//External Modules
#include "CTL.h"
//End of External Modules

#ifndef __AFXEXT_H__
#include <afxext.h>
#endif

//CPA2 Stegaru Cristian 98/07/15
#define CLEAN_ALW_FILE		20
//End CPA2 Stegaru Cristian 98/07/15

class EdActors_EditorActor; 
class EdActors_MyDocument;
class CPA_Editor_Static;
class CPA_Actor;
//CPA2 Stegaru Cristian 98/07/15
class CPA_Actor_Editor_Interface;
//End CPA2 Stegaru Cristian 98/07/15

// EdActors_ActorsView form view
/////////////////////////////////////////////////////////////////////////////

//CPA2 Stegaru Cristian 98/07/15
class ModifCleanAlwFile : public CPA_Modif
{
protected:
	CPA_Actor_Editor_Interface *m_pInterface;
	CStringList					m_lstAlwObjects;
public:
	ModifCleanAlwFile (CPA_Actor_Editor_Interface *pInterface, CStringList &rlstAlwObjects, BOOL pBlock = FALSE);

	BOOL Do (void);
	BOOL Undo (void);

};
//End CPA2 Stegaru Cristian 98/07/15

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

// Form Data
public:
	//{{AFX_DATA(EdActors_ActorsView)
	enum { IDD = IDD_CAR_D_VIEW_CONTROL };
	//}}AFX_DATA

// Attributes
public:
	UINT m_nNextButtonId;
	UINT m_nPreviousButtonId;

private:
	CTL_Editor_Static *m_pclActorNameStatic;
	CTL_Editor_Static *m_pclModelNameStatic;
 	CTL_Editor_Static *m_pclFamilyNameStatic;

	//Scroll sizes
	short m_wMinYScrollSize;
	short m_wXScrollSize;

	CToolTipCtrl *m_pclToolTip;

	CPA_List<EdActors_MSGroupButton> m_clListOfGroupButtons;
	
	//
	BOOL m_pri_bControlsAreEnabled;

	// Operations
public:
	void m_fn_vDisplayActor(EdActors_EditorActor *pclNewSelectedActor);

 	void m_fn_vUpdatePagesButtons(char cPage);
 	void m_fn_vUpdateActorName();
	void m_fn_vUpdateUndoRedoButtons();
	void m_fn_vRefreshNavigationButtons();

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(EdActors_ActorsView)
	public:
	virtual void OnInitialUpdate();
	//}}AFX_VIRTUAL

private:
	EdActors_MyDocument *m_fn_pclGetDocument();

// Implementation
public:
	void m_pub_fn_vEnableAllControls(BOOL _bEnable);
	//Refreshes Model and Instance Buttons
	void m_fn_vRefreshModelInstanceButtons();

	//
	void m_pub_fn_vUpdateActorNameForModif(CPA_Actor *_pclSendingActor);
	BOOL mfn_bIsAlwaysActiveEnabled (void);
	BOOL mfn_bIsInAllSubMapsEnabled (void);

protected:
	virtual ~EdActors_ActorsView();

	// Generated message map functions
	//{{AFX_MSG(EdActors_ActorsView)
/*
	afx_msg void OnButtonLevel1();
	afx_msg void OnButtonLevel2();
	afx_msg void OnButtonLevel3();
	afx_msg void OnCheckLevelExclusive();
*/
	afx_msg void OnButtonWatch();
	afx_msg void OnCheckModels();
	afx_msg void OnCheckVariables();
	afx_msg void OnCheckCurrent();
	afx_msg void OnCheckInitial();
	afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
	afx_msg void OnButtonRedo();
	afx_msg void OnButtonUndo();
	afx_msg void OnButtonUndoArrow();
	afx_msg void OnButtonRedoArrow();
	afx_msg void OnButtonShowModels();
	afx_msg void OnButtonEditModel();
	afx_msg void OnButtonShowInstances();
	afx_msg void OnButtonActions();
	afx_msg void OnButtonCopy();
// Shaitan => state list in the level
	afx_msg void OnButtonStateList();
// End Shaitan => state list in the level
	afx_msg void OnButtonHelp();
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnCheckShowLinks();
	afx_msg void m_fn_vOnMenuAlways();
	afx_msg void m_fn_vOnMenuCommon();
	afx_msg void m_fn_vOnMenuIntoFix();
	afx_msg void m_fn_vRenameModel();
	afx_msg void m_fn_vRemoveModel();
	afx_msg void m_fn_vRenameInstance();
	afx_msg void m_fn_vSetInstancePositionAsInitial();
	afx_msg void OnAlwaysActive();
	afx_msg void OnDestroy();
	afx_msg void OnCheckAlwaysActive();
	afx_msg void OnCleanAlwFile();
	afx_msg void OnInAllSubMaps();
	afx_msg void OnCheckInAllSubMaps();
 	afx_msg BOOL OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
	//}}AFX_MSG


	void OnButtonSetup();

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

	DECLARE_MESSAGE_MAP()

friend class EdActors_MyDocument;
friend class EdActors_WatchDialog;
friend class CPA_Actor_Editor_Interface;
};

/////////////////////////////////////////////////////////////////////////////
#endif //_CPACACVW_HPP_

