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.
63 lines
1.6 KiB
63 lines
1.6 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef C_TF2ROOTPANEL_H |
|
#define C_TF2ROOTPANEL_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include <vgui_controls/Panel.h> |
|
#include <vgui_controls/EditablePanel.h> |
|
#include "utlvector.h" |
|
|
|
class CPanelEffect; |
|
class ITFHintItem; |
|
|
|
// Serial under of effect, for safe lookup |
|
typedef unsigned int EFFECT_HANDLE; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Sits between engine and client .dll panels |
|
// Responsible for drawing screen overlays |
|
//----------------------------------------------------------------------------- |
|
class C_TF2RootPanel : public vgui::Panel |
|
{ |
|
typedef vgui::Panel BaseClass; |
|
public: |
|
C_TF2RootPanel( vgui::VPANEL parent ); |
|
virtual ~C_TF2RootPanel( void ); |
|
|
|
// Draw Panel effects here |
|
virtual void PostChildPaint(); |
|
|
|
// Clear list of Panel Effects |
|
virtual void LevelInit( void ); |
|
virtual void LevelShutdown( void ); |
|
|
|
// Panel Effect handlers |
|
EFFECT_HANDLE AddEffect( CPanelEffect *effect ); |
|
void RemoveEffect( EFFECT_HANDLE handle ); |
|
CPanelEffect *FindEffect( EFFECT_HANDLE handle ); |
|
void DestroyPanelEffects( ITFHintItem *owner ); |
|
void ClearAllEffects( void ); |
|
|
|
// Run effects and let them decide whether to remove themselves |
|
void OnTick( void ); |
|
|
|
private: |
|
|
|
// Render all panel effects |
|
void RenderPanelEffects( void ); |
|
|
|
// List of current panel effects |
|
CUtlVector< CPanelEffect *> m_Effects; |
|
}; |
|
|
|
extern C_TF2RootPanel *g_pTF2RootPanel; |
|
|
|
#endif // C_TF2ROOTPANEL_H
|
|
|