summaryrefslogtreecommitdiff
path: root/tracker/AdminServer/serverinfopanel.h
blob: 2959031d4d6f903e251d8f47ee58f536b77d36fa (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
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
// $NoKeywords: $
//=============================================================================

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

#include "VarListPropertyPage.h"
#include "tier1/utlbuffer.h"
#include "tier1/utlvector.h"
#include "tier1/utlsymbol.h"

//-----------------------------------------------------------------------------
// Purpose: Dialog for displaying information about a game server
//-----------------------------------------------------------------------------
class CServerInfoPanel : public CVarListPropertyPage
{
public:
	CServerInfoPanel(vgui::Panel *parent, const char *name);
	~CServerInfoPanel();

	// gets the current hostname
	const char *GetHostname();

	// Called when page is loaded.  Data should be reloaded from document into controls.
	virtual void OnResetData();

protected:
	// vgui overrides
	virtual void OnThink();

	// special editing of map cycle list
	virtual void OnEditVariable(KeyValues *rule);

	// handles responses from the server
	virtual void OnServerDataResponse(const char *value, const char *response);

private:
	void UpdateMapCycleValue();

	float m_flUpdateTime;
	int m_iPlayerCount, m_iMaxPlayers;
	float m_flLastUptimeReceiveTime;
	long m_iLastUptimeReceived;
	long m_iLastUptimeDisplayed;

	bool m_bMapListRetrieved;

	// used to store some strings for mapcycle
	CUtlVector<CUtlSymbol> m_AvailableMaps;
	CUtlVector<CUtlSymbol> m_MapCycle;
	void ParseIntoMapList(const char *maplist, CUtlVector<CUtlSymbol> &mapArray);

	typedef CVarListPropertyPage BaseClass;
};

#endif // SERVERINFOPANEL_H