hl2_src-leak-2017/src/game/client/tf2/itfhintitem.h

59 lines
1.8 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef ITFHINTITEM_H
#define ITFHINTITEM_H
#ifdef _WIN32
#pragma once
#endif
namespace vgui
{
class Panel;
}
class KeyValues;
//-----------------------------------------------------------------------------
// Purpose: All TF Hint Item Panels multiply inheret from this interface
//-----------------------------------------------------------------------------
class ITFHintItem
{
public:
virtual void ParseItem( KeyValues *pKeyValues ) = 0;
// Delete the hint
virtual void DeleteThis( void ) = 0;
// Returns true if the hint criteria have been met
virtual bool GetCompleted( void ) = 0;
// Mark the hint as active
virtual void SetActive( bool active ) = 0;
// Determine if the hint is the current, active hint
virtual bool GetActive( void ) = 0;
// Allow hint to run code
virtual void Think( void ) = 0;
// Determine height of hint
virtual int GetHeight( void ) = 0;
// Set screen position of hint
virtual void SetPosition( int x, int y ) = 0;
// Tell hint where it sits in current list of hints
virtual void SetItemNumber( int index ) = 0;
// Set the hint visible/invisible
virtual void SetVisible( bool visible ) = 0;
// Change the target (Panel) of the hint
virtual void SetHintTarget( vgui::Panel *panel ) = 0;
// Return true if hint should render this frame (default returns true if GetActive() is true)
virtual bool ShouldRenderPanelEffects( void ) = 0;
// Allow item to change title text
virtual void ComputeTitle( void ) = 0;
// Allow outside influence over keyvalues
virtual void SetKeyValue( const char *key, const char *value ) = 0;
};
#endif // ITFHINTITEM_H