aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/client/game_controls/IconPanel.cpp
blob: 3688daed6b317f880c418d56844f58c276af6cb4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//========= 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 ) ) );
}