aboutsummaryrefslogtreecommitdiff
path: root/sp/src/game/client/replay/vgui/replaymessagepanel.h
blob: 4e253c03353f878fd3f4d61ecd2f2501965a4ece (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//----------------------------------------------------------------------------------------

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

#include "vgui_controls/EditablePanel.h"

using namespace vgui;

//----------------------------------------------------------------------------------------
// Purpose:
//----------------------------------------------------------------------------------------
extern ConVar replay_msgduration_startrecord;
extern ConVar replay_msgduration_stoprecord;
extern ConVar replay_msgduration_replaysavailable;
extern ConVar replay_msgduration_error;
extern ConVar replay_msgduration_misc;
extern ConVar replay_msgduration_connectrecording;

//----------------------------------------------------------------------------------------
// Purpose: Forward declarations
//----------------------------------------------------------------------------------------
class CExLabel;
class CExButton;

class CReplayMessageDlg : public EditablePanel
{
	DECLARE_CLASS_SIMPLE( CReplayMessageDlg, EditablePanel );
public:
	CReplayMessageDlg( const char *pText );
	~CReplayMessageDlg();

	virtual void	ApplySchemeSettings( IScheme *pScheme );
	virtual void	PerformLayout();

	virtual void	OnKeyCodeTyped( KeyCode nCode );
	virtual void	OnCommand( const char *pCommand );

private:
	void			Close();

	Panel			*m_pDlg;
	CExLabel		*m_pMsgLabel;
	CExButton		*m_pOKButton;
};

//----------------------------------------------------------------------------------------
// Purpose: A panel for display messages from the replay system during gameplay
//----------------------------------------------------------------------------------------
class CReplayMessagePanel : public EditablePanel
{
	DECLARE_CLASS_SIMPLE( CReplayMessagePanel, EditablePanel );
public:
	CReplayMessagePanel( const char *pLocalizeName, float flDuration, bool bUrgent );
	virtual ~CReplayMessagePanel();

	void Show();
	virtual void OnTick();

	static int	InstanceCount();
	static void	RemoveAll();

private:
	virtual void ApplySchemeSettings( IScheme *pScheme );
	virtual void PerformLayout();


	CExLabel	*m_pMessageLabel;
	CExLabel	*m_pReplayLabel;
	ImagePanel	*m_pIcon;
	float		m_flShowStartTime;
	float		m_flShowDuration;
	bool		m_bUrgent;

#if defined( TF_CLIENT_DLL )
	char		m_szBorderName[ 64 ];
#endif
};

#endif // REPLAYMESSAGEPANEL_H