summaryrefslogtreecommitdiff
path: root/gameui/matchmaking/matchmakingbasepanel.h
diff options
context:
space:
mode:
Diffstat (limited to 'gameui/matchmaking/matchmakingbasepanel.h')
-rw-r--r--gameui/matchmaking/matchmakingbasepanel.h114
1 files changed, 114 insertions, 0 deletions
diff --git a/gameui/matchmaking/matchmakingbasepanel.h b/gameui/matchmaking/matchmakingbasepanel.h
new file mode 100644
index 0000000..0be40ed
--- /dev/null
+++ b/gameui/matchmaking/matchmakingbasepanel.h
@@ -0,0 +1,114 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: Serves as the base panel for the entire matchmaking UI
+//
+//=============================================================================//
+
+#ifndef MATCHMAKINGBASEPANEL_H
+#define MATCHMAKINGBASEPANEL_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "basedialog.h"
+#include "utlstack.h"
+#include "const.h"
+
+enum EGameType
+{
+ GAMETYPE_RANKED_MATCH,
+ GAMETYPE_STANDARD_MATCH,
+ GAMETYPE_SYSTEMLINK_MATCH,
+};
+
+//----------------------------
+// CMatchmakingBasePanel
+//----------------------------
+class CMatchmakingBasePanel : public CBaseDialog
+{
+ DECLARE_CLASS_SIMPLE( CMatchmakingBasePanel, CBaseDialog );
+
+public:
+ CMatchmakingBasePanel(vgui::Panel *parent);
+ ~CMatchmakingBasePanel();
+
+ virtual void OnCommand( const char *pCommand );
+ virtual void OnKeyCodePressed( vgui::KeyCode code );
+ virtual void Activate();
+
+ void SessionNotification( const int notification, const int param = 0 );
+ void SystemNotification( const int notification );
+ void UpdatePlayerInfo( uint64 nPlayerId, const char *pName, int nTeam, byte cVoiceState, int nPlayersNeeded, bool bHost );
+ void SessionSearchResult( int searchIdx, void *pHostData, XSESSION_SEARCHRESULT *pResult, int ping );
+
+ void OnLevelLoadingStarted();
+ void OnLevelLoadingFinished();
+ void CloseGameDialogs( bool bActivateNext = true );
+ void CloseAllDialogs( bool bActivateNext = true );
+ void CloseBaseDialogs( void );
+
+ void SetFooterButtons( CBaseDialog *pOwner, KeyValues *pData, int nButtonGap = -1 );
+ void ShowFooter( bool bShown );
+ void SetFooterButtonVisible( const char *pszText, bool bVisible );
+
+ uint GetGameType( void ) { return m_nGameType; }
+
+ MESSAGE_FUNC_CHARPTR( LoadMap, "LoadMap", mapname );
+private:
+ void OnOpenWelcomeDialog();
+ void OnOpenPauseDialog();
+ void OnOpenRankingsDialog();
+ void OnOpenSystemLinkDialog();
+ void OnOpenPlayerMatchDialog();
+ void OnOpenRankedMatchDialog();
+ void OnOpenAchievementsDialog();
+
+ //=============================================================================
+ // HPE_BEGIN:
+ // [dwenger] Specific code for CS Achievements Display
+ //=============================================================================
+
+ // $TODO(HPE): Move this to a game-specific location
+ void OnOpenCSAchievementsDialog();
+
+ //=============================================================================
+ // HPE_END
+ //=============================================================================
+
+ void OnOpenLeaderboardDialog( const char *pResourceName );
+ void OnOpenSessionOptionsDialog( const char *pResourceName );
+ void OnOpenSessionLobbyDialog( const char *pResourceName );
+ void OnOpenSessionBrowserDialog( const char *pResourceName );
+
+ void LoadSessionProperties();
+ bool ValidateSigninAndStorage( bool bOnlineRequired, const char *pIssuingCommand );
+ void CenterDialog( vgui::PHandle dlg );
+ void PushDialog( vgui::DHANDLE< CBaseDialog > &hDialog );
+ void PopDialog( bool bActivateNext = true );
+
+ vgui::DHANDLE< CBaseDialog > m_hWelcomeDialog;
+ vgui::DHANDLE< CBaseDialog > m_hPauseDialog;
+ vgui::DHANDLE< CBaseDialog > m_hStatsDialog;
+ vgui::DHANDLE< CBaseDialog > m_hRankingsDialog;
+ vgui::DHANDLE< CBaseDialog > m_hLeaderboardDialog;
+ vgui::DHANDLE< CBaseDialog > m_hSystemLinkDialog;
+ vgui::DHANDLE< CBaseDialog > m_hPlayerMatchDialog;
+ vgui::DHANDLE< CBaseDialog > m_hRankedMatchDialog;
+ vgui::DHANDLE< CBaseDialog > m_hAchievementsDialog;
+ vgui::DHANDLE< CBaseDialog > m_hSessionOptionsDialog;
+ vgui::DHANDLE< CBaseDialog > m_hSessionLobbyDialog;
+ vgui::DHANDLE< CBaseDialog > m_hSessionBrowserDialog;
+
+ CUtlStack< vgui::DHANDLE< CBaseDialog > > m_DialogStack;
+
+ uint m_nSessionType;
+ uint m_nGameType;
+ bool m_bPlayingOnline;
+ char m_szMapLoadName[MAX_MAP_NAME];
+ KeyValues *m_pSessionKeys;
+
+ CFooterPanel *m_pFooter;
+};
+
+
+#endif // MATCHMAKINGBASEPANEL_H