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.
88 lines
2.7 KiB
88 lines
2.7 KiB
//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: This is an entity that represents a vgui screen |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef VGUISCREEN_H |
|
#define VGUISCREEN_H |
|
|
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
// This is an entity that represents a vgui screen |
|
//----------------------------------------------------------------------------- |
|
class CVGuiScreen : public CBaseEntity |
|
{ |
|
public: |
|
DECLARE_CLASS( CVGuiScreen, CBaseEntity ); |
|
|
|
DECLARE_SERVERCLASS(); |
|
DECLARE_DATADESC(); |
|
|
|
CVGuiScreen(); |
|
|
|
virtual void Precache(); |
|
virtual bool KeyValue( const char *szKeyName, const char *szValue ); |
|
virtual void Spawn(); |
|
virtual void Activate(); |
|
virtual void OnRestore(); |
|
|
|
const char *GetPanelName() const; |
|
|
|
// Sets the screen size + resolution |
|
void SetActualSize( float flWidth, float flHeight ); |
|
|
|
// Activates/deactivates the screen |
|
bool IsActive() const; |
|
void SetActive( bool bActive ); |
|
|
|
// Is this screen only visible to teammates? |
|
bool IsVisibleOnlyToTeammates() const; |
|
void MakeVisibleOnlyToTeammates( bool bActive ); |
|
bool IsVisibleToTeam( int nTeam ); |
|
|
|
// Sets the overlay material |
|
void SetOverlayMaterial( const char *pMaterial ); |
|
|
|
void SetAttachedToViewModel( bool bAttached ); |
|
bool IsAttachedToViewModel() const; |
|
|
|
void SetTransparency( bool bTransparent ); |
|
|
|
virtual int UpdateTransmitState( void ); |
|
virtual int ShouldTransmit( const CCheckTransmitInfo *pInfo ); |
|
|
|
void SetPlayerOwner( CBasePlayer *pPlayer, bool bOwnerOnlyInput = false ); |
|
|
|
private: |
|
void SetAttachmentIndex( int nIndex ); |
|
void SetPanelName( const char *pPanelName ); |
|
void InputSetActive( inputdata_t &inputdata ); |
|
void InputSetInactive( inputdata_t &inputdata ); |
|
|
|
string_t m_strOverlayMaterial; |
|
|
|
CNetworkVar( float, m_flWidth ); |
|
CNetworkVar( float, m_flHeight ); |
|
CNetworkVar( int, m_nPanelName ); // The name of the panel |
|
CNetworkVar( int, m_nAttachmentIndex ); |
|
CNetworkVar( int, m_nOverlayMaterial ); |
|
CNetworkVar( int, m_fScreenFlags ); |
|
CNetworkVar( EHANDLE, m_hPlayerOwner ); |
|
|
|
friend CVGuiScreen *CreateVGuiScreen( const char *pScreenClassname, const char *pScreenType, CBaseEntity *pAttachedTo, CBaseEntity *pOwner, int nAttachmentIndex ); |
|
}; |
|
|
|
|
|
void PrecacheVGuiScreen( const char *pScreenType ); |
|
void PrecacheVGuiScreenOverlayMaterial( const char *pMaterialName ); |
|
CVGuiScreen *CreateVGuiScreen( const char *pScreenClassname, const char *pScreenType, CBaseEntity *pAttachedTo, CBaseEntity *pOwner, int nAttachmentIndex ); |
|
void DestroyVGuiScreen( CVGuiScreen *pVGuiScreen ); |
|
|
|
|
|
#endif // VGUISCREEN_H
|
|
|