hl2_src-leak-2017/src/game/client/vgui_basepanel.h

83 lines
2.5 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $Workfile: $
// $NoKeywords: $
//=============================================================================//
#if !defined( VGUI_BASEPANEL_H )
#define VGUI_BASEPANEL_H
#ifdef _WIN32
#pragma once
#endif
#include <stdarg.h>
#include <vgui_controls/Panel.h>
#include <vgui_controls/Label.h>
#include <vgui_controls/Controls.h>
#include <vgui/ISurface.h>
//-----------------------------------------------------------------------------
// Global interface allowing various rendering
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// Purpose: Base Panel for engine vgui panels ( can handle some drawing stuff )
//-----------------------------------------------------------------------------
class CBasePanel : public vgui::Panel
{
public:
DECLARE_CLASS_GAMEROOT( CBasePanel, vgui::Panel );
CBasePanel( vgui::Panel *pParent, const char *panelName );
CBasePanel( vgui::Panel *pParent, const char *panelName, int x, int y, int w, int h );
virtual ~CBasePanel( void );
// should this panel be drawn this frame?
virtual bool ShouldDraw( void ) { return true;}
virtual void PaintBackground( void );
virtual void SetTexture( const char *texname, bool tiled = false );
virtual void SetReflectMouse( bool reflect );
// If reflect mouse is true, then pass these up to parent
virtual void OnCursorMoved(int x,int y);
virtual void OnMousePressed(vgui::MouseCode code);
virtual void OnMouseDoublePressed(vgui::MouseCode code);
virtual void OnMouseReleased(vgui::MouseCode code);
virtual void OnMouseWheeled(int delta);
virtual void OnTick( void );
protected:
bool m_bTexturedBackground;
int m_nBackgroundMaterial;
char m_szBgTexture[ 256 ];
bool m_bTiled;
int m_nTextureSize[ 2 ];
bool m_bReflectMouse;
};
//-----------------------------------------------------------------------------
// Purpose: Hud labels that use HUD scheme colors
//-----------------------------------------------------------------------------
class CHudLabel : public vgui::Label
{
typedef vgui::Label BaseClass;
public:
CHudLabel( vgui::Panel *parent, const char *panelName, const char *text );
virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
// Selection highlight
void SetSelected( bool bSelected );
bool m_bSelected;
private:
CHudLabel( const CHudLabel & ); // not defined, not accessible
};
#endif // VGUI_BASEPANEL_H