Team Fortress 2 Source Code as on 22/4/2020
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.
|
|
//========= 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_bitmapimage.h"
#include "vgui_bitmapbutton.h"
#include <KeyValues.h>
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
//-----------------------------------------------------------------------------
// Constructor
//-----------------------------------------------------------------------------
CBitmapButton::CBitmapButton( vgui::Panel *pParent, const char *pName, const char *pText ) : BaseClass( pParent, pName, pText ) { SetPaintBackgroundEnabled( false ); for ( int i = 0; i < BUTTON_STATE_COUNT; ++i ) { m_bImageLoaded[i] = false; } }
CBitmapButton::~CBitmapButton() { }
//-----------------------------------------------------------------------------
// initialization
//-----------------------------------------------------------------------------
bool CBitmapButton::Init( KeyValues* pInitData ) { // Unimplemented
Assert( 0 ); return true; }
//-----------------------------------------------------------------------------
// initialization from build-mode dialog style .res files
//-----------------------------------------------------------------------------
void CBitmapButton::ApplySettings(KeyValues *pInitData) { BaseClass::ApplySettings(pInitData);
COMPILE_TIME_ASSERT( BUTTON_STATE_COUNT == 4 ); const char *pSectionName[BUTTON_STATE_COUNT] = { "enabledImage", "mouseOverImage", "pressedImage", "disabledImage" };
for ( int i = 0; i < BUTTON_STATE_COUNT; ++i ) { m_bImageLoaded[i] = InitializeImage(pInitData, pSectionName[i], this, &m_pImage[i] ); } }
//-----------------------------------------------------------------------------
// Sets the image
//-----------------------------------------------------------------------------
void CBitmapButton::SetImage( ButtonImageType_t type, const char *pMaterialName, color32 color ) { m_bImageLoaded[type] = m_pImage[type].Init( GetVPanel(), pMaterialName ); if (m_bImageLoaded[type]) { Color vcol( color.r, color.g, color.b, color.a ); m_pImage[type].SetColor( vcol ); } }
bool CBitmapButton::IsImageLoaded( ButtonImageType_t type ) const { return m_bImageLoaded[type]; }
//-----------------------------------------------------------------------------
// Draws the puppy
//-----------------------------------------------------------------------------
void CBitmapButton::Paint( void ) { // Determine the image to use based on the state
int nCurrentImage = BUTTON_ENABLED; if (IsArmed()) { if (IsDepressed()) { nCurrentImage = BUTTON_PRESSED; } else { nCurrentImage = BUTTON_ENABLED_MOUSE_OVER; } } else if (!IsEnabled()) { nCurrentImage = BUTTON_DISABLED; }
if (m_bImageLoaded[nCurrentImage]) { m_pImage[nCurrentImage].DoPaint( GetVPanel() ); }
BaseClass::Paint(); }
|