source-engine/game/client/game_controls/IconPanel.cpp

69 lines
1.4 KiB
C++
Raw Normal View History

2020-04-22 16:56:21 +00:00
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#include "cbase.h"
#include "IconPanel.h"
#include "KeyValues.h"
DECLARE_BUILD_FACTORY( CIconPanel );
CIconPanel::CIconPanel( vgui::Panel *parent, const char *name ) : vgui::Panel( parent, name )
{
m_szIcon[0] = '\0';
m_icon = NULL;
m_bScaleImage = false;
}
void CIconPanel::ApplySettings( KeyValues *inResourceData )
{
Q_strncpy( m_szIcon, inResourceData->GetString( "icon", "" ), sizeof( m_szIcon ) );
m_icon = gHUD.GetIcon( m_szIcon );
m_bScaleImage = inResourceData->GetInt("scaleImage", 0);
BaseClass::ApplySettings( inResourceData );
}
void CIconPanel::SetIcon( const char *szIcon )
{
Q_strncpy( m_szIcon, szIcon, sizeof(m_szIcon) );
m_icon = gHUD.GetIcon( m_szIcon );
}
void CIconPanel::Paint()
{
BaseClass::Paint();
if ( m_icon )
{
int x, y, w, h;
GetBounds( x, y, w, h );
if ( m_bScaleImage )
{
m_icon->DrawSelf( 0, 0, w, h, m_IconColor );
}
else
{
m_icon->DrawSelf( 0, 0, m_IconColor );
}
}
}
void CIconPanel::ApplySchemeSettings( vgui::IScheme *pScheme )
{
BaseClass::ApplySchemeSettings( pScheme );
if ( m_szIcon[0] != '\0' )
{
m_icon = gHUD.GetIcon( m_szIcon );
}
SetFgColor( pScheme->GetColor( "FgColor", Color( 255, 255, 255, 255 ) ) );
}