source-engine/serverbrowser/LanGames.h
2023-01-29 19:26:04 +03:00

82 lines
2.2 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================
#ifndef LANGAMES_H
#define LANGAMES_H
#ifdef _WIN32
#pragma once
#endif
class CLanBroadcastMsgHandler;
//-----------------------------------------------------------------------------
// Purpose: Favorite games list
//-----------------------------------------------------------------------------
class CLanGames : public CBaseGamesPage
{
DECLARE_CLASS_SIMPLE( CLanGames, CBaseGamesPage );
public:
CLanGames(vgui::Panel *parent, bool bAutoRefresh=true, const char *pCustomResFilename=NULL);
~CLanGames();
// property page handlers
virtual void OnPageShow();
// IGameList handlers
// returns true if the game list supports the specified ui elements
virtual bool SupportsItem(InterfaceItem_e item);
// Control which button are visible.
void ManualShowButtons( bool bShowConnect, bool bShowRefreshAll, bool bShowFilter );
// If you pass NULL for pSpecificAddresses, it will broadcast on certain points.
// If you pass a non-null value, then it will send info queries directly to those ports.
void InternalGetNewServerList( CUtlVector<netadr_t> *pSpecificAddresses );
virtual void StartRefresh();
// stops current refresh/GetNewServerList()
virtual void StopRefresh();
// IServerRefreshResponse handlers
// called when a server response has timed out
virtual void ServerFailedToRespond( HServerListRequest hReq, int iServer );
// called when the current refresh list is complete
virtual void RefreshComplete( NServerResponse response );
// Tell the game list what to put in there when there are no games found.
virtual void SetEmptyListText();
private:
// vgui message handlers
virtual void OnTick();
// lan timeout checking
virtual void CheckRetryRequest();
// context menu message handlers
MESSAGE_FUNC_INT( OnOpenContextMenu, "OpenContextMenu", itemID );
// number of servers refreshed
int m_iServerRefreshCount;
// true if we're broadcasting for servers
bool m_bRequesting;
// time at which we last broadcasted
double m_fRequestTime;
bool m_bAutoRefresh;
};
#endif // LANGAMES_H