text: //========= 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
  