summaryrefslogtreecommitdiff
path: root/game/client/tf/vgui/tf_lobbypanel_comp.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/client/tf/vgui/tf_lobbypanel_comp.h')
-rw-r--r--game/client/tf/vgui/tf_lobbypanel_comp.h139
1 files changed, 139 insertions, 0 deletions
diff --git a/game/client/tf/vgui/tf_lobbypanel_comp.h b/game/client/tf/vgui/tf_lobbypanel_comp.h
new file mode 100644
index 0000000..1e0d843
--- /dev/null
+++ b/game/client/tf/vgui/tf_lobbypanel_comp.h
@@ -0,0 +1,139 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+//=============================================================================//
+#ifndef TF_LOBBYPANEL_COMP_H
+#define TF_LOBBYPANEL_COMP_H
+
+#include "cbase.h"
+#include "game/client/iviewport.h"
+#include "tf_lobbypanel.h"
+#include "tf_leaderboardpanel.h"
+#include "local_steam_shared_object_listener.h"
+
+// memdbgon must be the last include file in a .cpp file!!!
+#include <tier0/memdbgon.h>
+
+using namespace GCSDK;
+
+class CBaseLobbyPanel;
+
+namespace vgui
+{
+ class ScrollableEditablePanel;
+};
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+class CLadderLobbyLeaderboard : public CTFLeaderboardPanel
+{
+ DECLARE_CLASS_SIMPLE( CLadderLobbyLeaderboard, CTFLeaderboardPanel );
+public:
+
+ CLadderLobbyLeaderboard( Panel *pParent, const char *pszPanelName );
+
+ //-----------------------------------------------------------------------------
+ // Purpose: Create leaderboard panels
+ //-----------------------------------------------------------------------------
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme ) OVERRIDE;
+ virtual void PerformLayout() OVERRIDE;
+ virtual void OnCommand( const char *command ) OVERRIDE;
+
+ virtual bool GetLeaderboardData( CUtlVector< LeaderboardEntry_t* >& scores );
+ virtual bool UpdateLeaderboards();
+
+ void SetLeaderboard( const char *pszLeaderboardName, bool bGlobal );
+
+ const char *GetLeaderboardName() const { return m_pszLeaderboardName; }
+ bool IsDataValid( void ) { return m_bIsDataValid; }
+
+private:
+ const char *m_pszLeaderboardName;
+ bool m_bGlobal;
+ bool m_bIsDataValid;
+
+ vgui::ScrollableEditablePanel *m_pScoreListScroller;
+ EditablePanel *m_pScoreList;
+
+ CTFTextToolTip *m_pToolTip;
+ vgui::EditablePanel *m_pToolTipEmbeddedPanel;
+};
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+class CLobbyPanel_Comp : public CBaseLobbyPanel, public CLocalSteamSharedObjectListener
+{
+ DECLARE_CLASS_SIMPLE( CLobbyPanel_Comp, CBaseLobbyPanel );
+
+public:
+ CLobbyPanel_Comp( vgui::Panel *pParent, CBaseLobbyContainerFrame* pLobbyContainer );
+ virtual ~CLobbyPanel_Comp();
+
+ //
+ // Panel overrides
+ //
+ virtual void PerformLayout() OVERRIDE;
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme ) OVERRIDE;
+ virtual void OnCommand( const char *command ) OVERRIDE;
+
+ virtual EMatchGroup GetMatchGroup( void ) const OVERRIDE;
+
+ virtual void SOCreated( const CSteamID & steamIDOwner, const CSharedObject *pObject, ESOCacheEvent eEvent ) OVERRIDE;
+ virtual void SOUpdated( const CSteamID & steamIDOwner, const CSharedObject *pObject, ESOCacheEvent eEvent ) OVERRIDE;
+
+ virtual void OnThink() OVERRIDE;
+
+ //
+ // CGameEventListener overrides
+ //
+ virtual void FireGameEvent( IGameEvent *event ) OVERRIDE;
+
+private:
+ virtual bool ShouldShowLateJoin() const OVERRIDE;
+ virtual void ApplyChatUserSettings( const LobbyPlayerInfo &player,KeyValues *pKV ) const OVERRIDE;
+ virtual const char* GetResFile() const OVERRIDE { return "Resource/UI/LobbyPanel_Comp.res"; }
+
+ CPanelAnimationVarAliasType( int, m_iStatMedalWidth, "stat_medal_width", "14", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_iMedalCountWidth, "stat_medal_count_width", "20", "proportional_int" );
+ CPanelAnimationVarAliasType( int, m_iHasPassWidth, "has_pass_width", "12", "proportional_int" );
+
+ CUtlVector<vgui::Label *> m_vecSearchCriteriaLabels;
+
+ // leaderboards
+ CLadderLobbyLeaderboard *m_pCompetitiveModeLeaderboard;
+
+ vgui::HFont m_fontMedalsCount;
+
+ enum EMatchHistorySortMethods_t
+ {
+ SORT_BY_RESULT = 0,
+ SORT_BY_DATE,
+ SORT_BY_MAP,
+ SORT_BY_KDR,
+
+ NUM_SORT_METHODS
+ };
+
+ CScrollableList* m_pMatchHistoryScroller;
+ EMatchHistorySortMethods_t m_eMatchSortMethod;
+ bool m_bDescendingMatchHistorySort;
+
+ float m_flCompetitiveRankProgress;
+ float m_flCompetitiveRankPrevProgress;
+ float m_flRefreshPlayerListTime;
+ bool m_bCompetitiveRankChangePlayedSound;
+ bool m_bMatchHistoryLoaded;
+
+ void WriteGameSettingsControls() OVERRIDE;
+
+ int GetMedalCountForStat( EMatchGroup unLadderType, RankStatType_t nStatType, int nMedalLevel );
+
+
+ void UpdateMatchDataForLocalPlayer();
+ bool m_bMatchDataForLocalPlayerDirty;
+};
+
+#endif //TF_LOBBYPANEL_COMP_H