//========= Copyright © 1996-2002, Valve LLC, All rights reserved. ============
//
// Purpose: 
//
// $NoKeywords: $
//=============================================================================

#ifndef CL_DEMOACTIONEDITORS_H
#define CL_DEMOACTIONEDITORS_H
#ifdef _WIN32
#pragma once
#endif

#include <vgui_controls/Frame.h>
namespace vgui
{
	class Panel;
	class Button;
	class TextEntry;
	class ComboBox;
}

class CDemoEditorPanel;

//-----------------------------------------------------------------------------
// Purpose: 
//-----------------------------------------------------------------------------
class CBaseActionEditDialog : public vgui::Frame
{
	typedef vgui::Frame BaseClass;
public:
	CBaseActionEditDialog( CDemoEditorPanel *parent, CBaseDemoAction *action, bool newaction );

	virtual void	Init( void );

	virtual void	OnClose();
	virtual void	OnCancel();

	virtual void	OnCommand( char const *commands );

	// Returns true if changes were effected
	virtual bool	OnSaveChanges( void );

private:
	vgui::Button	*m_pOK;
	vgui::Button	*m_pCancel;

	vgui::TextEntry	*m_pActionName;

	vgui::ComboBox	*m_pStartType;
	vgui::TextEntry	*m_pStart;

protected:
	CDemoEditorPanel	*m_pEditor;
	CBaseDemoAction		*m_pAction;
	bool				m_bNewAction;
};

//-----------------------------------------------------------------------------
// Purpose: 
//-----------------------------------------------------------------------------
class CBaseActionWithTargetDialog : public CBaseActionEditDialog
{
	typedef CBaseActionEditDialog BaseClass;
public:
	CBaseActionWithTargetDialog( CDemoEditorPanel *parent, CBaseDemoAction *action, bool newaction );

	// Also a pure baseclass
	virtual void	Init( void );

	// Returns true if changes were effected
	virtual bool	OnSaveChanges( void );

private:

	vgui::TextEntry	*m_pActionTarget;
};


#endif // CL_DEMOACTIONEDITORS_H
