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.
68 lines
1.4 KiB
68 lines
1.4 KiB
//========= 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 ) ) ); |
|
}
|
|
|