diff options
Diffstat (limited to 'mp/src/game/client/game_controls/IconPanel.cpp')
| -rw-r--r-- | mp/src/game/client/game_controls/IconPanel.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/mp/src/game/client/game_controls/IconPanel.cpp b/mp/src/game/client/game_controls/IconPanel.cpp new file mode 100644 index 00000000..88fb8071 --- /dev/null +++ b/mp/src/game/client/game_controls/IconPanel.cpp @@ -0,0 +1,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 ) ) );
+}
|