You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.4 KiB
69 lines
1.4 KiB
![]()
4 years ago
|
//========= 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 ) ) );
|
||
|
}
|