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

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

#include "IAdminServer.h"
#include "IVGuiModule.h"

#include <utlvector.h>

class CServerPage;

//-----------------------------------------------------------------------------
// Purpose: Handles the UI and pinging of a half-life game server list
//-----------------------------------------------------------------------------
class CAdminServer : public IAdminServer, public IVGuiModule
{
public:
	CAdminServer();
	~CAdminServer();

	// IVGui module implementation
	virtual bool Initialize(CreateInterfaceFn *factorylist, int numFactories);
	virtual bool PostInitialize(CreateInterfaceFn *modules, int factoryCount);
	virtual vgui::VPANEL GetPanel();
	virtual bool Activate();
	virtual bool IsValid();
	virtual void Shutdown();
	virtual void Deactivate();
	virtual void Reactivate();
	virtual void SetParent(vgui::VPANEL parent);

	// IAdminServer implementation
	// opens a manage server dialog for a local server
	virtual ManageServerUIHandle_t OpenManageServerDialog(const char *serverName, const char *gameDir);

	// opens a manage server dialog to a remote server
	virtual ManageServerUIHandle_t OpenManageServerDialog(unsigned int gameIP, unsigned int gamePort, const char *password);

	// forces the game info dialog closed
	virtual void CloseManageServerDialog(ManageServerUIHandle_t gameDialog);

	// Gets a handle to the interface
	virtual IManageServer *GetManageServerInterface(ManageServerUIHandle_t handle);

private:
	struct OpenedManageDialog_t
	{
		unsigned long handle;
		IManageServer *manageInterface;
	};
	CUtlVector<OpenedManageDialog_t> m_OpenedManageDialog;
	vgui::VPANEL m_hParent;
};


class IVProfExport;
extern IVProfExport *g_pVProfExport;


#endif // AdminServer_H