// CPACWDlg.hpp : header file
/////////////////////////////////////////////////////////////////////////////
#ifndef _CPACWDLG_HPP_
#define _CPACWDLG_HPP_

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

#include <afxtempl.h>

#include "EdAcIRes.h"

#include "EDACDatW.hpp"

class CTL_Editor_Data;

int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);

/////////////////////////////////////////////////////////////////////////////
// EdActors_WatchDialog dialog

class EdActors_WatchDialog : public CDialog
{
// Construction
public:
	EdActors_WatchDialog(CWnd* pParent = NULL);   // standard constructor
	~EdActors_WatchDialog();   // denstructor

// Dialog Data
	//{{AFX_DATA(EdActors_WatchDialog)
	enum { IDD = IDD_CAR_D_WATCH_WINDOW };
		// NOTE: the ClassWizard will add data members here
	//}}AFX_DATA


// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(EdActors_WatchDialog)
	//}}AFX_VIRTUAL
//Attributes
public:
	BOOL m_bIsVisible;

private:
	//The list of data in the watch window
 	CList<EdActors_WatchData *, EdActors_WatchData *> m_clWatchDataList;

	//Indicates the current mode : Tree or List
	BOOL m_bTreeMode;

	//For Caption bar
	CFont m_clFont;
	CRect m_crHideButtonRect;

	BOOL m_bIsActive;

// Implementation
public:
	void m_fn_vAddValue(CTL_Editor_Data *pclData);
	void m_fn_vRemoveValue(CTL_Editor_Data *pclData);
	void m_fn_vUpdateValue(CTL_Editor_Data *pclData);
	void m_fn_vUpdateAllDatas();
	void m_fn_vLookForModifiedDatas();

//	BOOL m_pub_fn_bIsActive();

protected:

	// Generated message map functions
	//{{AFX_MSG(EdActors_WatchDialog)
	virtual BOOL OnInitDialog();
	afx_msg void OnSize(UINT nType, int cx, int cy);
	afx_msg void OnColumnclickListValues(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnKeydownListValues(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnDblclkListValues(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnKeydownTreeActors(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnDblclkTreeActors(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
	afx_msg void OnPaint();
	afx_msg void OnDestroy();
	//}}AFX_MSG
	afx_msg void OnNcLButtonDblClk( UINT nHitTest, CPoint point );
	afx_msg void OnNcRButtonDown( UINT nHitTest, CPoint point );
	afx_msg	void OnWatchList();
	afx_msg	void OnWatchTree();

//	afx_msg BOOL OnNcCreate( LPCREATESTRUCT lpCreateStruct );
	afx_msg BOOL OnNcActivate(BOOL bActive);
	afx_msg void OnNcLButtonDown(UINT, CPoint);

	void OnOK();
	void OnCancel();

private:
	CTreeCtrl *m_fn_pclGetTreeCtrl();
	CListCtrl *m_fn_pclGetListCtrl();
	void m_fn_vRefreshWatch();
	void m_fn_vDrawCaptionBar();

	DECLARE_MESSAGE_MAP()

friend class EdActors_MyDocument;
};
#endif //_CPACWDLG_HPP_

