summaryrefslogtreecommitdiff
path: root/game/client/tf/vgui/tf_mapinfomenu.h
blob: 4f982eac78f12527cca54a4260001f8b7f825306 (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. ============//
//
// Purpose: 
//
// $NoKeywords: $
//=============================================================================//

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

#include <vgui_controls/Frame.h>
#include "vgui_controls/KeyRepeat.h"

//-----------------------------------------------------------------------------
// Purpose: displays the MapInfo menu
//-----------------------------------------------------------------------------

class CTFMapInfoMenu : public vgui::Frame, public IViewPortPanel
{
private:
	DECLARE_CLASS_SIMPLE( CTFMapInfoMenu, vgui::Frame );

public:
	CTFMapInfoMenu( IViewPort *pViewPort );
	virtual ~CTFMapInfoMenu();

	virtual const char *GetName( void ){ return PANEL_MAPINFO; }
	virtual void SetData( KeyValues *data ){}
	virtual void Reset(){ Update(); }
	virtual void Update();
	virtual bool NeedsUpdate( void ){ return false; }
	virtual bool HasInputElements( void ){ return true; }
	virtual void ShowPanel( bool bShow );

	// both vgui::Frame and IViewPortPanel define these, so explicitly define them here as passthroughs to vgui
	vgui::VPANEL GetVPanel( void ){ return BaseClass::GetVPanel(); }
	virtual bool IsVisible(){ return BaseClass::IsVisible(); }
	virtual void SetParent( vgui::VPANEL parent ){ BaseClass::SetParent( parent ); }

	virtual GameActionSet_t GetPreferredActionSet() { return GAME_ACTION_SET_IN_GAME_HUD; }

protected:
	virtual void OnKeyCodePressed(vgui::KeyCode code);
	virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
	virtual void OnCommand( const char *command );
	virtual void OnKeyCodeReleased( vgui::KeyCode code );
	virtual void OnThink();
	
private:
	// helper functions
	void LoadMapPage();
	void SetMapTitle();
	bool HasViewedMovieForMap();
	bool CheckForIntroMovie();
	void CheckIntroState();
	void CheckBackContinueButtons();

protected:
	IViewPort			*m_pViewPort;
	CExLabel			*m_pTitle;
	CExRichText			*m_pMapInfo;

#ifdef _X360
	CTFFooter			*m_pFooter;
#else
	CExButton			*m_pContinue;
	CExButton			*m_pBack;
	CExButton			*m_pIntro;
	CSCHintIcon			*m_pContinueHintIcon;
	CSCHintIcon			*m_pBackHintIcon;
	CSCHintIcon			*m_pIntroHintIcon;
#endif

	vgui::ImagePanel	*m_pMapImage;

	char				m_szMapName[MAX_PATH];

	vgui::CKeyRepeatHandler	m_KeyRepeat;
};


#endif // TF_MAPINFOMENU_H