diff options
Diffstat (limited to 'tracker/AdminServer/FavoriteGames.h')
| -rw-r--r-- | tracker/AdminServer/FavoriteGames.h | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/tracker/AdminServer/FavoriteGames.h b/tracker/AdminServer/FavoriteGames.h new file mode 100644 index 0000000..6e9ddb0 --- /dev/null +++ b/tracker/AdminServer/FavoriteGames.h @@ -0,0 +1,121 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//============================================================================= + +#ifndef FAVORITEGAMES_H +#define FAVORITEGAMES_H +#ifdef _WIN32 +#pragma once +#endif + +#include "BaseGamesPage.h" + +#include "IGameList.h" +#include "IServerRefreshResponse.h" +#include "server.h" + +class KeyValues; + +namespace vgui +{ +class ListPanel; +class MessageBox; +}; + +class CUtlBuffer; + +//----------------------------------------------------------------------------- +// Purpose: Favorite games list +//----------------------------------------------------------------------------- +class CFavoriteGames : public CBaseGamesPage +{ +public: + CFavoriteGames(vgui::Panel *parent); + ~CFavoriteGames(); + + // favorites list, loads/saves into keyvalues + void LoadFavoritesList(vgui::KeyValues *favoritesData,bool loadrcon); + void SaveFavoritesList(vgui::KeyValues *favoritesData,bool savercon); + + // property page handlers +// virtual void OnPageShow(); +// virtual void OnPageHide(); + + // IGameList handlers + // returns true if the game list supports the specified ui elements + virtual bool SupportsItem(InterfaceItem_e item); + + // starts the servers refreshing + virtual void StartRefresh(); + + // gets a new server list + virtual void GetNewServerList(); + + // stops current refresh/GetNewServerList() + virtual void StopRefresh(); + + // returns true if the list is currently refreshing servers + virtual bool IsRefreshing(); + + // gets information about specified server +// virtual serveritem_t &GetServer(unsigned int serverID); + + // adds a new server to list + virtual void AddNewServer(serveritem_t &server); + + // marks that server list has been fully received + virtual void ListReceived(bool moreAvailable, int lastUnique); + + // called when Connect button is pressed + virtual void OnBeginConnect(); + + // called to look at game info + virtual void OnViewGameInfo(); + + // reapplies filters (does nothing with this) + virtual void ApplyFilters(); + + // IServerRefreshResponse handlers + // called when the server has successfully responded + virtual void ServerResponded(serveritem_t &server); + + // called when a server response has timed out + virtual void ServerFailedToRespond(serveritem_t &server); + + // called when the current refresh list is complete + virtual void RefreshComplete(); + + virtual void ImportFavorites(); + virtual void OnImportFavoritesFile(); + + // updates the rconPassword field for this server + void UpdateServer(serveritem_t &serverIn); + + +private: + // context menu message handlers + void OnOpenContextMenu(int row); + void OnRefreshServer(int serverID); + void OnRemoveFromFavorites(); + void OnAddServerByName(); + + void OnCommand(const char *command); + bool LoadAFavoriteServer (CUtlBuffer &buf); + bool CheckForCorruption(char *data, const char *checkString); + + int m_iServerRefreshCount; // number of servers refreshed + bool m_bSaveRcon; + + DECLARE_PANELMAP(); + typedef CBaseGamesPage BaseClass; + + // message that favorites are being imported + vgui::MessageBox *m_pImportFavoritesdlg; + +}; + + +#endif // FAVORITEGAMES_H |