//========= Copyright 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