diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /mp/src/game/client/vgui_bitmappanel.cpp | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/game/client/vgui_bitmappanel.cpp')
| -rw-r--r-- | mp/src/game/client/vgui_bitmappanel.cpp | 440 |
1 files changed, 220 insertions, 220 deletions
diff --git a/mp/src/game/client/vgui_bitmappanel.cpp b/mp/src/game/client/vgui_bitmappanel.cpp index 8fcb9f60..d28d26dc 100644 --- a/mp/src/game/client/vgui_bitmappanel.cpp +++ b/mp/src/game/client/vgui_bitmappanel.cpp @@ -1,220 +1,220 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose: This is a panel which is rendered image on top of an entity
-//
-// $Revision: $
-// $NoKeywords: $
-//=============================================================================//
-#include "cbase.h"
-#pragma warning (disable: 4514)
-#include "vgui_bitmappanel.h"
-#include <KeyValues.h>
-#include "panelmetaclassmgr.h"
-#include "vgui_bitmapimage.h"
-
-#ifdef INVASION_CLIENT_DLL
-#include "hud_commander_statuspanel.h"
-#endif
-
-// memdbgon must be the last include file in a .cpp file!!!
-#include "tier0/memdbgon.h"
-
-DECLARE_BUILD_FACTORY( CBitmapPanel );
-
-
-//-----------------------------------------------------------------------------
-// Constructor
-//-----------------------------------------------------------------------------
-CBitmapPanel::CBitmapPanel( ) : BaseClass( NULL, "CBitmapPanel" ), m_pImage(0)
-{
- SetPaintBackgroundEnabled( false );
- m_szMouseOverText[ 0 ] = 0;
- m_r = m_g = m_b = m_a = 255;
- m_bOwnsImage = true;
-}
-
-CBitmapPanel::CBitmapPanel( vgui::Panel *pParent, const char *pName ) :
- BaseClass( pParent, pName ), m_pImage(0)
-{
- SetPaintBackgroundEnabled( false );
- m_szMouseOverText[ 0 ] = 0;
- m_r = m_g = m_b = m_a = 255;
- m_bOwnsImage = true;
-}
-
-CBitmapPanel::~CBitmapPanel()
-{
- if (m_pImage && m_bOwnsImage)
- {
- delete m_pImage;
- m_pImage = NULL;
- }
-}
-
-
-//-----------------------------------------------------------------------------
-// initialization
-//-----------------------------------------------------------------------------
-bool CBitmapPanel::Init( KeyValues* pInitData )
-{
- Assert( pInitData );
-
- // modulation color
- if (!ParseRGBA( pInitData, "color", m_r, m_g, m_b, m_a ))
- return false;
-
- int x, y, w, h;
- if (!ParseRect( pInitData, "position", x, y, w, h ))
- return false;
-
- const char *mouseover = pInitData->GetString( "mousehint", "" );
- if ( mouseover && mouseover[ 0 ] )
- {
- Q_strncpy( m_szMouseOverText, mouseover, sizeof( m_szMouseOverText ) );
- }
-
- // Set the size...
- SetPos( x, y );
- SetSize( w, h );
-
- char const* pClassImage = pInitData->GetString( "material" );
- if ( !pClassImage || !pClassImage[ 0 ] )
- return false;
-
- // hook in the bitmap
- m_pImage = new BitmapImage( GetVPanel(), pClassImage );
- m_bOwnsImage = true;
-
- return true;
-}
-
-
-//-----------------------------------------------------------------------------
-// initialization from build-mode dialog style .res files
-//-----------------------------------------------------------------------------
-void CBitmapPanel::ApplySettings(KeyValues *pInitData)
-{
- BaseClass::ApplySettings(pInitData);
-
- if (m_pImage && m_bOwnsImage)
- {
- delete m_pImage;
- m_pImage = NULL;
- }
-
- // modulation color. Can't use ParseRGBA since this uses a vgui::KeyValues (feh)
- m_r = m_g = m_b = m_a = 255;
- const char *pColorString = pInitData->GetString( "color", "255 255 255 255" );
- if ( pColorString && pColorString[ 0 ] )
- {
- // Try and scan them in
- int r = 0, g = 0, b = 0, a = 0;
- int scanned;
- scanned = sscanf( pColorString, "%i %i %i %i", &r, &g, &b, &a );
- if ( scanned == 4 )
- {
- m_r = r; m_g = g; m_b = b; m_a = a;
- }
- else
- {
- Warning( "Couldn't scan four color values from %s\n", pColorString );
- }
- }
-
- m_szMouseOverText[0] = 0;
-
- char const* pClassImage = pInitData->GetString( "material" );
- if ( pClassImage && pClassImage[ 0 ] && m_bOwnsImage )
- {
- // hook in the bitmap
- m_pImage = new BitmapImage( GetVPanel(), pClassImage );
- }
-}
-
-
-//-----------------------------------------------------------------------------
-// Draws the puppy
-//-----------------------------------------------------------------------------
-void CBitmapPanel::Paint( void )
-{
- if ( !m_pImage )
- return;
-
- Color color;
- color.SetColor( m_r, m_g, m_b, m_a );
- m_pImage->SetColor( color );
- m_pImage->DoPaint( GetVPanel() );
-}
-
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CBitmapPanel::OnCursorEntered()
-{
-#ifdef INVASION_CLIENT_DLL
- if ( m_szMouseOverText[ 0 ] )
- {
- StatusPrint( TYPE_HINT, "%s", m_szMouseOverText );
- }
-#endif
-}
-
-
-//-----------------------------------------------------------------------------
-// Purpose:
-//-----------------------------------------------------------------------------
-void CBitmapPanel::OnCursorExited()
-{
-#ifdef INVASION_CLIENT_DLL
- if ( m_szMouseOverText[ 0 ] )
- {
- StatusClear();
- }
-#endif
-}
-
-
-//-----------------------------------------------------------------------------
-// Purpose:
-// Output : char const
-//-----------------------------------------------------------------------------
-const char *CBitmapPanel::GetMouseOverText( void )
-{
- return m_szMouseOverText;
-}
-
-
-//-----------------------------------------------------------------------------
-// Purpose: Sets up the panel
-// Used by panels that aren't created by the commander overlay factory (i.e. aren't parsed from a keyvalues file)
-//-----------------------------------------------------------------------------
-void CBitmapPanel::SetImage( BitmapImage *pImage )
-{
- m_pImage = pImage;
- m_bOwnsImage = (pImage == NULL);
-
- // Get the color from the image
- if ( m_pImage )
- {
- m_pImage->GetColor( m_r, m_g, m_b, m_a );
- }
-}
-
-//-----------------------------------------------------------------------------
-// Purpose: Set image data directly
-//-----------------------------------------------------------------------------
-void CBitmapPanel::SetBitmap( const Bitmap_t &bitmap )
-{
-
- // Make sure we have an image that we own
- if ( m_pImage == NULL || !m_bOwnsImage )
- {
- delete m_pImage;
- m_pImage = new BitmapImage( GetVPanel(), NULL );
- m_bOwnsImage = true;
- }
-
- // Set the bitmap
- m_pImage->SetBitmap( bitmap );
-}
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: This is a panel which is rendered image on top of an entity +// +// $Revision: $ +// $NoKeywords: $ +//=============================================================================// +#include "cbase.h" +#pragma warning (disable: 4514) +#include "vgui_bitmappanel.h" +#include <KeyValues.h> +#include "panelmetaclassmgr.h" +#include "vgui_bitmapimage.h" + +#ifdef INVASION_CLIENT_DLL +#include "hud_commander_statuspanel.h" +#endif + +// memdbgon must be the last include file in a .cpp file!!! +#include "tier0/memdbgon.h" + +DECLARE_BUILD_FACTORY( CBitmapPanel ); + + +//----------------------------------------------------------------------------- +// Constructor +//----------------------------------------------------------------------------- +CBitmapPanel::CBitmapPanel( ) : BaseClass( NULL, "CBitmapPanel" ), m_pImage(0) +{ + SetPaintBackgroundEnabled( false ); + m_szMouseOverText[ 0 ] = 0; + m_r = m_g = m_b = m_a = 255; + m_bOwnsImage = true; +} + +CBitmapPanel::CBitmapPanel( vgui::Panel *pParent, const char *pName ) : + BaseClass( pParent, pName ), m_pImage(0) +{ + SetPaintBackgroundEnabled( false ); + m_szMouseOverText[ 0 ] = 0; + m_r = m_g = m_b = m_a = 255; + m_bOwnsImage = true; +} + +CBitmapPanel::~CBitmapPanel() +{ + if (m_pImage && m_bOwnsImage) + { + delete m_pImage; + m_pImage = NULL; + } +} + + +//----------------------------------------------------------------------------- +// initialization +//----------------------------------------------------------------------------- +bool CBitmapPanel::Init( KeyValues* pInitData ) +{ + Assert( pInitData ); + + // modulation color + if (!ParseRGBA( pInitData, "color", m_r, m_g, m_b, m_a )) + return false; + + int x, y, w, h; + if (!ParseRect( pInitData, "position", x, y, w, h )) + return false; + + const char *mouseover = pInitData->GetString( "mousehint", "" ); + if ( mouseover && mouseover[ 0 ] ) + { + Q_strncpy( m_szMouseOverText, mouseover, sizeof( m_szMouseOverText ) ); + } + + // Set the size... + SetPos( x, y ); + SetSize( w, h ); + + char const* pClassImage = pInitData->GetString( "material" ); + if ( !pClassImage || !pClassImage[ 0 ] ) + return false; + + // hook in the bitmap + m_pImage = new BitmapImage( GetVPanel(), pClassImage ); + m_bOwnsImage = true; + + return true; +} + + +//----------------------------------------------------------------------------- +// initialization from build-mode dialog style .res files +//----------------------------------------------------------------------------- +void CBitmapPanel::ApplySettings(KeyValues *pInitData) +{ + BaseClass::ApplySettings(pInitData); + + if (m_pImage && m_bOwnsImage) + { + delete m_pImage; + m_pImage = NULL; + } + + // modulation color. Can't use ParseRGBA since this uses a vgui::KeyValues (feh) + m_r = m_g = m_b = m_a = 255; + const char *pColorString = pInitData->GetString( "color", "255 255 255 255" ); + if ( pColorString && pColorString[ 0 ] ) + { + // Try and scan them in + int r = 0, g = 0, b = 0, a = 0; + int scanned; + scanned = sscanf( pColorString, "%i %i %i %i", &r, &g, &b, &a ); + if ( scanned == 4 ) + { + m_r = r; m_g = g; m_b = b; m_a = a; + } + else + { + Warning( "Couldn't scan four color values from %s\n", pColorString ); + } + } + + m_szMouseOverText[0] = 0; + + char const* pClassImage = pInitData->GetString( "material" ); + if ( pClassImage && pClassImage[ 0 ] && m_bOwnsImage ) + { + // hook in the bitmap + m_pImage = new BitmapImage( GetVPanel(), pClassImage ); + } +} + + +//----------------------------------------------------------------------------- +// Draws the puppy +//----------------------------------------------------------------------------- +void CBitmapPanel::Paint( void ) +{ + if ( !m_pImage ) + return; + + Color color; + color.SetColor( m_r, m_g, m_b, m_a ); + m_pImage->SetColor( color ); + m_pImage->DoPaint( GetVPanel() ); +} + + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CBitmapPanel::OnCursorEntered() +{ +#ifdef INVASION_CLIENT_DLL + if ( m_szMouseOverText[ 0 ] ) + { + StatusPrint( TYPE_HINT, "%s", m_szMouseOverText ); + } +#endif +} + + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void CBitmapPanel::OnCursorExited() +{ +#ifdef INVASION_CLIENT_DLL + if ( m_szMouseOverText[ 0 ] ) + { + StatusClear(); + } +#endif +} + + +//----------------------------------------------------------------------------- +// Purpose: +// Output : char const +//----------------------------------------------------------------------------- +const char *CBitmapPanel::GetMouseOverText( void ) +{ + return m_szMouseOverText; +} + + +//----------------------------------------------------------------------------- +// Purpose: Sets up the panel +// Used by panels that aren't created by the commander overlay factory (i.e. aren't parsed from a keyvalues file) +//----------------------------------------------------------------------------- +void CBitmapPanel::SetImage( BitmapImage *pImage ) +{ + m_pImage = pImage; + m_bOwnsImage = (pImage == NULL); + + // Get the color from the image + if ( m_pImage ) + { + m_pImage->GetColor( m_r, m_g, m_b, m_a ); + } +} + +//----------------------------------------------------------------------------- +// Purpose: Set image data directly +//----------------------------------------------------------------------------- +void CBitmapPanel::SetBitmap( const Bitmap_t &bitmap ) +{ + + // Make sure we have an image that we own + if ( m_pImage == NULL || !m_bOwnsImage ) + { + delete m_pImage; + m_pImage = new BitmapImage( GetVPanel(), NULL ); + m_bOwnsImage = true; + } + + // Set the bitmap + m_pImage->SetBitmap( bitmap ); +} |