Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Quickplay client UI
//
// $NoKeywords: $
//=============================================================================//
#ifndef _INCLUDED_TF_QUICKPLAY_UI_H
#define _INCLUDED_TF_QUICKPLAY_UI_H
#ifdef _WIN32
#pragma once
#endif
namespace vgui { class Button; class ComboBox; class RadioButton; }
#include "vgui_controls/EditablePanel.h"
#include "tf_quickplay_shared.h"
struct QuickplayItem { const char *pTitle; const char *pDescription; const char *pMoreInfo; const char *pComplexity; const char *pImage; const char *pBetaImage; EGameCategory gameType; };
//-----------------------------------------------------------------------------
// Purpose: Quickplay Dialog
//-----------------------------------------------------------------------------
extern ConVar tf_quickplay_lastviewedmode;
class CQuickplayPanelBase : public vgui::EditablePanel { DECLARE_CLASS_SIMPLE( CQuickplayPanelBase, vgui::EditablePanel ); public: CQuickplayPanelBase( vgui::Panel *parent, const char *name ); virtual ~CQuickplayPanelBase();
virtual void ApplySettings( KeyValues *pInResourceData ) OVERRIDE; virtual void ApplySchemeSettings( vgui::IScheme *pScheme ) OVERRIDE; virtual void OnCommand( const char *pCommand );
void ShowItemByGameType( EGameCategory gameType ); void ShowItemByIndex( int iItem ); int GetSelectedItemIndex() const { return m_iCurrentItem; }
void SetPageScrollButtonsVisible( bool bFlag );
protected: void SetupActionTarget( const char *pPanelName ); void AddItem( EGameCategory gameType, const char *pTitle, const char *pDescription, const char *pMoreInfo, const char *pComplexity, const char *pImage, const char *pBetaImage ); virtual void UpdateSelectableItems(); void SaveSettings(); void SetupMoreOptions(); void ReadOptionCombos(); void WriteOptionCombosAndSummary(); virtual void GetOptionsAndSummaryText( wchar_t *pwszSummary ); void ShowSimplifiedOrAdvancedOptions(); virtual const char *GetItemImage( const QuickplayItem& item ) const; MESSAGE_FUNC_PTR( OnTextChanged, "TextChanged", panel ); MESSAGE_FUNC_PTR( OnRadioButtonChecked, "RadioButtonChecked", panel );
virtual void UserSelectItemByIndex( int iNewItem );
protected:
vgui::EditablePanel *m_pContainer; vgui::EditablePanel *m_pSimplifiedOptionsContainer; vgui::EditablePanel *m_pAdvOptionsContainer; vgui::EditablePanel *m_pGameModeInfoContainer; vgui::Button *m_pPrevPageButton; vgui::Button *m_pNextPageButton; vgui::Button *m_pMoreOptionsButton; vgui::EditablePanel *m_pMoreInfoContainer; vgui::ComboBox *m_pGameModeCombo; vgui::Label *m_pOptionsSummaryLabel;
enum EAdvOption { kEAdvOption_ServerHost, kEAdvOption_MaxPlayers, kEAdvOption_Respawn, kEAdvOption_RandomCrits, kEAdvOption_DamageSpread };
struct AdvOption { const char *m_pszContainerName; ConVar *m_pConvar; CUtlVector<const char *> m_vecOptionNames; CUtlVector<vgui::RadioButton *> m_vecRadioButtons; CUtlVector<const char *> m_vecOptionSummaryNames; int m_nChoice; }; CUtlVector<AdvOption> m_vecAdvOptions;
//vgui::CheckButton *m_pFavoritesCheckButton;
//vgui::Button *m_pRefreshButton;
CUtlVector< QuickplayItem > m_vecItems; CUtlVector< QuickplayItem > m_vecAllItems; int m_iCurrentItem; bool m_bSetInitialSelection; bool m_bShowRandomOption;
char m_szEvent247Image[MAX_PATH]; char m_szCommunityUpdateImage[MAX_PATH]; };
#endif // #ifndef _INCLUDED_TF_QUICKPLAY_UI_H
|