From 3bf9df6b2785fa6d951086978a3e66f49427166a Mon Sep 17 00:00:00 2001 From: FluorescentCIAAfricanAmerican <0934gj3049fk@protonmail.com> Date: Wed, 22 Apr 2020 12:56:21 -0400 Subject: 1 --- game/client/dod/VGUI/dodtextwindow.cpp | 162 +++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 game/client/dod/VGUI/dodtextwindow.cpp (limited to 'game/client/dod/VGUI/dodtextwindow.cpp') diff --git a/game/client/dod/VGUI/dodtextwindow.cpp b/game/client/dod/VGUI/dodtextwindow.cpp new file mode 100644 index 0000000..9e0309f --- /dev/null +++ b/game/client/dod/VGUI/dodtextwindow.cpp @@ -0,0 +1,162 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#include "cbase.h" +#include "dodtextwindow.h" +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "dodbutton.h" + +#include "IGameUIFuncs.h" // for key bindings +#include +extern IGameUIFuncs *gameuifuncs; // for key binding details + +#include + +// memdbgon must be the last include file in a .cpp file!!! +#include "tier0/memdbgon.h" + +using namespace vgui; + +//----------------------------------------------------------------------------- +// Purpose: Constructor +//----------------------------------------------------------------------------- +CDODTextWindow::CDODTextWindow(IViewPort *pViewPort) : CTextWindow( pViewPort ) +{ + SetProportional( true ); + + m_iScoreBoardKey = BUTTON_CODE_INVALID; + + m_pBackground = SETUP_PANEL( new CDODMenuBackground( this ) ); + + // Do this again ( base class already does it ) + // If we don't, custom controls that we catch in our CreateControlByName + // will not go to the CDODTextWindow version as we haven't instantiated + // ourselves as a CDODTextWindow yet. + LoadControlSettings("Resource/UI/TextWindow.res"); +} + +//----------------------------------------------------------------------------- +// Purpose: Destructor +//----------------------------------------------------------------------------- +CDODTextWindow::~CDODTextWindow() +{ +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CDODTextWindow::Update() +{ + BaseClass::Update(); + + Panel *ok = FindChildByName("okbutton"); + if (ok) + { + ok->RequestFocus(); + } +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CDODTextWindow::SetVisible(bool state) +{ + BaseClass::SetVisible(state); + + if ( state ) + { + Panel *ok = FindChildByName("okbutton"); + if (ok) + { + ok->RequestFocus(); + } + } +} + +//----------------------------------------------------------------------------- +// Purpose: shows the text window +//----------------------------------------------------------------------------- +void CDODTextWindow::ShowPanel(bool bShow) +{ + if ( bShow ) + { + // get key binding if shown + if ( m_iScoreBoardKey == BUTTON_CODE_INVALID ) // you need to lookup the jump key AFTER the engine has loaded + { + m_iScoreBoardKey = gameuifuncs->GetButtonCodeForBind( "showscores" ); + } + } + + BaseClass::ShowPanel( bShow ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CDODTextWindow::OnKeyCodePressed(KeyCode code) +{ + if ( m_iScoreBoardKey != BUTTON_CODE_INVALID && m_iScoreBoardKey == code ) + { + gViewPortInterface->ShowPanel( PANEL_SCOREBOARD, true ); + gViewPortInterface->PostMessageToPanel( PANEL_SCOREBOARD, new KeyValues( "PollHideCode", "code", code ) ); + } + else + { + BaseClass::OnKeyCodePressed( code ); + } +} + +//----------------------------------------------------------------------------- +// Purpose: The background is painted elsewhere, so we should do nothing +//----------------------------------------------------------------------------- +void CDODTextWindow::PaintBackground() +{ +} + +//----------------------------------------------------------------------------- +// Purpose: Scale / center the window +//----------------------------------------------------------------------------- +void CDODTextWindow::PerformLayout() +{ + BaseClass::PerformLayout(); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CDODTextWindow::ApplySchemeSettings( vgui::IScheme *pScheme ) +{ + BaseClass::ApplySchemeSettings( pScheme ); +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +Panel *CDODTextWindow::CreateControlByName( const char *controlName ) +{ + if( !Q_stricmp( "DODButton", controlName ) ) + { + return new CDODButton(this); + } + else + { + return BaseClass::CreateControlByName( controlName ); + } +} \ No newline at end of file -- cgit v1.2.3