mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-16 05:37:00 +00:00
1
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
//========= 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
|
||||
Reference in New Issue
Block a user