/*=============================================================================
 *
 *  Filename:           DlgActCt.hpp : header file
 *  Version:            1.0
 *  Date:				02/01/97
 *  Author:             V.L.
 *
 *  Description:		description of Form view class for action content
 *
 *===========================================================================*/
#ifndef __DLGACTCT_HPP_
#define __DLGACTCT_HPP_

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

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

#include "TAct_res.h"

class TAction_Interface;
class CPA_Action;
class CPA_State;

/*=============================================================================
* CDlgActionContents class
=============================================================================*/
class CDlgActionContents : public CFormView
{
  protected:
    TAction_Interface*  m_p_oParentDLL;
	BOOL				m_bFirstShow;
    CFont               m_oBoldFont;
    CFont               m_oItalicFont;
    CPA_State           *m_p_oStateUnderCursor;
// CPA_Ed_1 Mihaela Tancu begin
	int					m_iIndexListBox;	//the index in the list box with states used for drag&drop the states
	BOOL				m_bStateDrag;		//used for testing if we can drag or not the selected state
// CPA_Ed_1 Mihaela Tancu end
  protected:
	CDlgActionContents();           // protected constructor used by dynamic creation
	DECLARE_DYNCREATE(CDlgActionContents)

  // Form Data
  public:
	//{{AFX_DATA(CDlgActionContents)
	enum { IDD = IDD_DLG_ACTIONCONTENTS };
	//}}AFX_DATA

  // Attributes
  public:
	BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName,
				DWORD dwRequestedStyle, const RECT& rect, CWnd* pParentWnd, UINT nID,
				CCreateContext* pContext);

  // Operations
  public:
	void fn_vSetAction( CPA_Action *_p_oAction );
    void fn_vSetParentDLL( TAction_Interface *_p_oDLL)  { m_p_oParentDLL = _p_oDLL; }
    void fn_vSetAsNextState( CPA_State *_p_oNextState);
    void fn_vFillSequentialStateMenu( CMenu* _p_oMenu, CPA_Action *_p_oCurrentAction, CPA_State *_p_oFirstState);
    void fn_vSetState( CPA_State *_p_oState );
  // Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CDlgActionContents)
	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:
    virtual ~CDlgActionContents (void);
    void fn_vUpdateButtons      (CPA_State *_p_oState);
    void OnRButtonDownStatesList(MSG *pMsg);
    void OnKeyDownStatesList    (MSG *pMsg);
// CPA_Ed_1 Mihaela Tancu begin
	BOOL OnLButtonDownStatesList(MSG *pMsg);
	BOOL OnLButtonUpStatesList(MSG *pMsg);
	BOOL OnMouseMoveStatesList(MSG *pMsg);
// CPA_Ed_1 Mihaela Tancu end
	void OnBtCreateState		(BOOL _bNormal = TRUE);
    #ifdef _DEBUG
		virtual void AssertValid() const;
		virtual void Dump(CDumpContext& dc) const;
	#endif

	// Generated message map functions
	//{{AFX_MSG(CDlgActionContents)
	afx_msg void OnDestroy();
	afx_msg void OnBtDelstate();
	afx_msg void OnSelchangeListStates();
	afx_msg void OnBtNewstate();
	afx_msg void OnBtCopystate();
	afx_msg void OnBtDefaultstate();
	afx_msg void OnBtDelallstates();
	afx_msg void OnBtRenstate();
//  CPA_Ed_1 Mihaela Tancu begin
	afx_msg void OnBtUp();
	afx_msg void OnBtDown();
//  CPA_Ed_1 Mihaela Tancu end
	afx_msg void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct);
	afx_msg void OnSize(UINT nType, int cx, int cy);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

#endif //__DLGACTCT_HPP_

/////////////////////////////////////////////////////////////////////////////