89 lines
2.7 KiB
C++
89 lines
2.7 KiB
C++
//========= 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
|