source-engine/gameui/BonusMapsDialog.h

76 lines
2.0 KiB
C
Raw Normal View History

2020-04-22 16:56:21 +00:00
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef BONUSMAPSDIALOG_H
#define BONUSMAPSDIALOG_H
#ifdef _WIN32
#pragma once
#endif
#include "vgui_controls/Frame.h"
#include "BonusMapsDatabase.h"
//-----------------------------------------------------------------------------
// Purpose: Displays and loads available bonus maps
//-----------------------------------------------------------------------------
class CBonusMapsDialog : public vgui::Frame
{
DECLARE_CLASS_SIMPLE( CBonusMapsDialog, vgui::Frame );
public:
CBonusMapsDialog(vgui::Panel *parent);
~CBonusMapsDialog();
void SetSelectedBooleanStatus( const char *pchName, bool bValue );
void RefreshData( void );
int GetSelectedChallenge( void );
virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
virtual void OnCommand( const char *command );
void OnKeyCodeTyped( vgui::KeyCode code );
void OnKeyCodePressed( vgui::KeyCode code );
private:
bool ImportZippedBonusMaps( const char *pchZippedFileName );
void BuildMapsList( void );
void CreateBonusMapsList();
int GetSelectedItemBonusMapIndex();
void RefreshDialog( BonusMapDescription_t *pMap );
void RefreshMedalDisplay( BonusMapDescription_t *pMap );
void RefreshCompletionPercentage( void );
MESSAGE_FUNC( OnPanelSelected, "PanelSelected" );
MESSAGE_FUNC( OnControlModified, "ControlModified" );
MESSAGE_FUNC( OnTextChanged, "TextChanged" )
{
OnControlModified();
}
MESSAGE_FUNC_CHARPTR( OnFileSelected, "FileSelected", fullpath );
private:
Color m_PercentageBarBackgroundColor, m_PercentageBarColor;
vgui::FileOpenDialog *m_hImportBonusMapsDialog;
vgui::PanelListPanel *m_pGameList;
vgui::ComboBox *m_pChallengeSelection;
vgui::ImagePanel *m_pPercentageBarBackground;
vgui::ImagePanel *m_pPercentageBar;
};
extern CBonusMapsDialog *g_pBonusMapsDialog;
#endif // BONUSMAPSDIALOG_H