91 lines
2.9 KiB
C++
91 lines
2.9 KiB
C++
//========= 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
|