source-engine/gameui/CommentaryExplanationDialog.cpp

108 lines
2.9 KiB
C++
Raw Permalink Normal View History

2020-04-22 16:56:21 +00:00
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================
#include "CommentaryExplanationDialog.h"
#include "BasePanel.h"
#include "convar.h"
#include "EngineInterface.h"
#include "GameUI_Interface.h"
#include "vgui/ISurface.h"
#include "vgui/IInput.h"
#include <stdio.h>
using namespace vgui;
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
CCommentaryExplanationDialog::CCommentaryExplanationDialog(vgui::Panel *parent, char *pszFinishCommand) : BaseClass(parent, "CommentaryExplanationDialog")
{
SetDeleteSelfOnClose(true);
SetSizeable( false );
input()->SetAppModalSurface(GetVPanel());
LoadControlSettings("Resource/CommentaryExplanationDialog.res");
MoveToCenterOfScreen();
GameUI().PreventEngineHideGameUI();
// Save off the finish command
Q_snprintf( m_pszFinishCommand, sizeof( m_pszFinishCommand ), "%s", pszFinishCommand );
}
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
CCommentaryExplanationDialog::~CCommentaryExplanationDialog()
{
}
void CCommentaryExplanationDialog::OnKeyCodeTyped(KeyCode code)
{
if ( code == KEY_ESCAPE )
{
OnCommand( "cancel" );
}
else
{
BaseClass::OnKeyCodeTyped(code);
}
}
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CCommentaryExplanationDialog::OnKeyCodePressed(KeyCode code)
{
if ( GetBaseButtonCode( code ) == KEY_XBUTTON_B || GetBaseButtonCode( code ) == STEAMCONTROLLER_B )
{
OnCommand( "cancel" );
}
else if ( GetBaseButtonCode( code ) == KEY_XBUTTON_A || GetBaseButtonCode( code ) == STEAMCONTROLLER_A )
{
OnCommand( "ok" );
}
else
{
BaseClass::OnKeyCodePressed(code);
}
}
//-----------------------------------------------------------------------------
// Purpose: handles button commands
//-----------------------------------------------------------------------------
void CCommentaryExplanationDialog::OnCommand( const char *command )
{
if ( !stricmp( command, "ok" ) )
{
Close();
BasePanel()->FadeToBlackAndRunEngineCommand( m_pszFinishCommand );
}
else if ( !stricmp( command, "cancel" ) || !stricmp( command, "close" ) )
{
Close();
}
else
{
BaseClass::OnCommand( command );
}
}
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CCommentaryExplanationDialog::OnClose( void )
{
BaseClass::OnClose();
GameUI().AllowEngineHideGameUI();
}