#if !defined(AFX_ERFELEMINFOVIEW_H__CE5EB241_5F84_11D2_8408_00A0C933BCAC__INCLUDED_)
#define AFX_ERFELEMINFOVIEW_H__CE5EB241_5F84_11D2_8408_00A0C933BCAC__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ErfElemInfoView.h : header file
//
#include <GameOS\GameOS.hpp>
#include <ElementRenderer\ElementRenderer.hpp>
#include <ElementRenderer\Element.hpp>
#include <MLR\MLR.hpp>
#include "ErfListBox.h"

/////////////////////////////////////////////////////////////////////////////
// CErfElemInfoView view


class CErfElemInfoView : public CView
{
protected:
	CErfElemInfoView();           // protected constructor used by dynamic creation
	DECLARE_DYNCREATE(CErfElemInfoView)
		// Attributes
public:
	CErfListBox *InfoCtrl;
	// Operations
public:
	void RefreshData(bool leaveempty=false);
	void SetLodValue(int level,float min,float max);
	void SetLodValue(int level,float min,float fadeIn,float fadeOut,float max);
	void SetAlign(int startAt,int alignType);

	// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CErfElemInfoView)
	public:
	virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
	virtual void OnInitialUpdate();
	protected:
	virtual void OnDraw(CDC* pDC);      // overridden to draw this view
	virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
	virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
	virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
	//}}AFX_VIRTUAL
	
	void UpdateInfo(ElementRenderer::Element *elmt);
	void UpdateInfo(MidLevelRenderer::MLRPrimitiveBase *prim);
	void UpdateInfo(ElementRenderer::StateChange*);
	void UpdateInfo(const MidLevelRenderer::MLRState*);
	void UpdateInfo(const MidLevelRenderer::MLRStateBase*);
	
	// Implementation
protected:
	virtual ~CErfElemInfoView();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif
	
	// Generated message map functions
protected:
	//{{AFX_MSG(CErfElemInfoView)
	afx_msg void OnSize(UINT nType, int cx, int cy);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};


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

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_ERFELEMINFOVIEW_H__CE5EB241_5F84_11D2_8408_00A0C933BCAC__INCLUDED_)
