//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
// $NoKeywords: $
//=============================================================================//

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

#include "confirm_dialog.h"
#include "tf_gc_client.h"

enum eDisconnectReason
{
	REASON_QUIT,
	REASON_DISCONNECT
};

class CTFDisconnectConfirmDialog : public CTFGenericConfirmDialog
{
	DECLARE_CLASS_SIMPLE( CTFDisconnectConfirmDialog, CTFGenericConfirmDialog );
public:
	CTFDisconnectConfirmDialog(	const char *pTitle, 
								const char *pTextKey, 
								const char *pConfirmBtnText,
								const char *pCancelBtnText, 
								GenericConfirmDialogCallback callback, 
								vgui::Panel *pParent );

	virtual const char *GetResFile();

	void SetReason( eDisconnectReason reason );
	virtual void OnCommand( const char *command );
	void AddConfirmCommand( const char *command );
	void AddCancelCommand( const char *command );

private:
	CUtlVector< CUtlString > m_confirmCommands;
	CUtlVector< CUtlString > m_cancelCommands;

	eDisconnectReason m_eReason;
	EAbandonGameStatus m_eAbandonStatus;

};
CTFDisconnectConfirmDialog * BuildDisconnectConfirmDialog();


class CTFRejoinConfirmDialog : public CTFGenericConfirmDialog
{
	DECLARE_CLASS_SIMPLE( CTFRejoinConfirmDialog, CTFGenericConfirmDialog );
public:
	CTFRejoinConfirmDialog(	const char *pTitle, 
		const char *pTextKey, 
		const char *pConfirmBtnText,
		const char *pCancelBtnText, 
		GenericConfirmDialogCallback callback, 
		vgui::Panel *pParent );

	virtual const char *GetResFile();

	void CloseRejoinWindow();

private:

	EAbandonGameStatus m_eAbandonStatus;

};

bool HandleDisconnectAttempt();

#endif // TF_HUD_DISCONNECT_PROMPT_H