aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/client/game_controls/NavProgress.cpp
diff options
context:
space:
mode:
authorJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
committerJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
commit39ed87570bdb2f86969d4be821c94b722dc71179 (patch)
treeabc53757f75f40c80278e87650ea92808274aa59 /mp/src/game/client/game_controls/NavProgress.cpp
downloadsource-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz
source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip
First version of the SOurce SDK 2013
Diffstat (limited to 'mp/src/game/client/game_controls/NavProgress.cpp')
-rw-r--r--mp/src/game/client/game_controls/NavProgress.cpp137
1 files changed, 137 insertions, 0 deletions
diff --git a/mp/src/game/client/game_controls/NavProgress.cpp b/mp/src/game/client/game_controls/NavProgress.cpp
new file mode 100644
index 00000000..7b7e9767
--- /dev/null
+++ b/mp/src/game/client/game_controls/NavProgress.cpp
@@ -0,0 +1,137 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#include "cbase.h"
+#include "NavProgress.h"
+
+#include <vgui/IScheme.h>
+#include <vgui/ILocalize.h>
+#include <vgui/ISurface.h>
+#include <filesystem.h>
+#include <KeyValues.h>
+#include <convar.h>
+
+#include <vgui_controls/Label.h>
+
+#include <game/client/iviewport.h>
+
+// memdbgon must be the last include file in a .cpp file!!!
+#include "tier0/memdbgon.h"
+
+using namespace vgui;
+
+//--------------------------------------------------------------------------------------------------------------
+CNavProgress::CNavProgress( IViewPort *pViewPort ) : Frame( NULL, PANEL_NAV_PROGRESS )
+{
+ // initialize dialog
+ m_pViewPort = pViewPort;
+
+ // load the new scheme early!!
+ SetScheme("ClientScheme");
+ SetMoveable(false);
+ SetSizeable(false);
+ SetProportional(true);
+
+ // hide the system buttons
+ SetTitleBarVisible( false );
+
+ m_pTitle = new Label( this, "TitleLabel", "" );
+ m_pText = new Label( this, "TextLabel", "" );
+
+ m_pProgressBarBorder = new Panel( this, "ProgressBarBorder" );
+ m_pProgressBar = new Panel( this, "ProgressBar" );
+ m_pProgressBarSizer = new Panel( this, "ProgressBarSizer" );
+
+ LoadControlSettings("Resource/UI/NavProgress.res");
+
+ Reset();
+}
+
+//--------------------------------------------------------------------------------------------------------------
+CNavProgress::~CNavProgress()
+{
+}
+
+//--------------------------------------------------------------------------------------------------------------
+void CNavProgress::ApplySchemeSettings(IScheme *pScheme)
+{
+ BaseClass::ApplySchemeSettings( pScheme );
+
+ SetPaintBackgroundType( 2 );
+
+ m_pProgressBarSizer->SetVisible( false );
+
+ m_pProgressBarBorder->SetBorder( pScheme->GetBorder( "ButtonDepressedBorder" ) );
+ m_pProgressBarBorder->SetBgColor( Color( 0, 0, 0, 0 ) );
+
+ m_pProgressBar->SetBorder( pScheme->GetBorder( "ButtonBorder" ) );
+ m_pProgressBar->SetBgColor( pScheme->GetColor( "ProgressBar.FgColor", Color( 0, 0, 0, 0 ) ) );
+}
+
+//--------------------------------------------------------------------------------------------------------------
+void CNavProgress::PerformLayout()
+{
+ BaseClass::PerformLayout();
+
+ if ( m_numTicks )
+ {
+ int w = m_pProgressBarSizer->GetWide();
+ w = w * m_currentTick / m_numTicks;
+ m_pProgressBar->SetWide( w );
+ }
+}
+
+//--------------------------------------------------------------------------------------------------------------
+void CNavProgress::Init( const char *title, int numTicks, int startTick )
+{
+ m_pText->SetText( title );
+
+ m_numTicks = MAX( 1, numTicks ); // non-zero, since we'll divide by this
+ m_currentTick = MAX( 0, MIN( m_numTicks, startTick ) );
+
+ InvalidateLayout();
+}
+
+//--------------------------------------------------------------------------------------------------------------
+void CNavProgress::SetData(KeyValues *data)
+{
+ Init( data->GetString( "msg" ),
+ data->GetInt( "total" ),
+ data->GetInt( "current" ) );
+}
+
+//--------------------------------------------------------------------------------------------------------------
+void CNavProgress::ShowPanel( bool bShow )
+{
+ if ( BaseClass::IsVisible() == bShow )
+ return;
+
+ m_pViewPort->ShowBackGround( bShow );
+
+ if ( bShow )
+ {
+ Activate();
+ SetMouseInputEnabled( true );
+ }
+ else
+ {
+ SetVisible( false );
+ SetMouseInputEnabled( false );
+ }
+}
+
+//--------------------------------------------------------------------------------------------------------------
+void CNavProgress::Reset( void )
+{
+}
+
+//--------------------------------------------------------------------------------------------------------------
+void CNavProgress::Update( void )
+{
+}
+
+//--------------------------------------------------------------------------------------------------------------