// DlgZALst.hpp : header file
//

/////////////////////////////////////////////////////////////////////////////
// CDlgZAList dialog

#ifndef __DLGZALST_HPP__
#define __DLGZALST_HPP__

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

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

#include "TAct_Res.h"
#include "TAC.h"

class CPA_Family;
class CPA_State;
class CPA_Action;
class TAction_Interface;
class CPA_tdoNameList;
class CPA_ZonesActivatingList;
class CPA_ZonesActivating;
class CDlgZonesActivation;

class CDlgZAList : public CFormView
{
protected:
    TAction_Interface       *m_p_oDLL;
    CPA_ZonesActivatingList *m_p_oCurrentZAList;
    CPA_ZonesActivating     *m_p_oCurrentZA;
    CPA_List<CPA_State>      m_oListOfSelectedStates;
    CPA_List<CPA_BaseObject> m_oListOfZA;
    CPA_Action              *m_p_oCurrentAction;
	BOOL					 m_bFirstShow;
    CDlgZonesActivation     *m_p_oDlgZA;
// Construction
protected:
    CDlgZAList();           // protected constructor used by dynamic creation
	DECLARE_DYNCREATE(CDlgZAList)
// Attributes
public:
	BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName,
				DWORD dwRequestedStyle, const RECT& rect, CWnd* pParentWnd, UINT nID,
				CCreateContext* pContext);
public:
	void    mfn_vSetZA              (CPA_ZonesActivating *_p_oZA, BOOL _bApply = TRUE );
    void    mfn_vSetParentDLL       ( TAction_Interface *_p_oDLL)		{ m_p_oDLL = _p_oDLL ; }
    void    mfn_vSetDlgZA           ( CDlgZonesActivation *_p_oDlgZA )  { m_p_oDlgZA = _p_oDlgZA; }
    void    mfn_vSetCurrentNamesList( CPA_tdoNameList *_p_oNameList);
    void    mfn_vSetCurrentZAList   ( CPA_ZonesActivatingList *_p_oZAList );
    void    mfn_vAddAction          ( CPA_Action *_p_oAction, BOOL _bReplace = FALSE );
    void    mfn_vUpdateStates       ( CPA_List<CPA_State> *_p_oListOfState );
// Dialog Data
	//{{AFX_DATA(CDlgZAList)
	enum { IDD = IDD_DLG_ZALIST };
		// NOTE: the ClassWizard will add data members here
	//}}AFX_DATA


// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CDlgZAList)
	public:
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
	//}}AFX_VIRTUAL

// Implementation
protected:

	// Generated message map functions
	//{{AFX_MSG(CDlgZAList)
	//afx_msg void OnBtAction();
	afx_msg void OnDestroy();
	afx_msg void OnBtExtendaction();
	afx_msg void OnBtExtendfamily();
	afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
	afx_msg void OnSelchangeLbStates();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

protected:
    BOOL    OnRButtonDownLbStates   ( MSG* pMsg );
    void    mfn_vFillLBStates       ( CPA_Action *_p_oAction, BOOL _bReplace = FALSE );
    void    OnDrawListItem          ( LPDRAWITEMSTRUCT lpDIS );
    void    mfn_vUpdateButtons      ( void );
    int     mfn_iSelectStringExact  ( CListBox *_pLB, CString _csEntry );
};

#endif //__DLGZALST_HPP__
