mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-18 06:21:55 +00:00
1
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef HINTITEMBASE_H
|
||||
#define HINTITEMBASE_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include <vgui_controls/Panel.h>
|
||||
#include "itfhintitem.h"
|
||||
|
||||
class C_TFBaseHint;
|
||||
class CHintItemBase;
|
||||
|
||||
namespace vgui
|
||||
{
|
||||
class Label;
|
||||
}
|
||||
|
||||
#define DECLARE_HINTITEMFACTORY( className ) \
|
||||
CHintItemBase *Create_##className##( vgui::Panel *parent, const char *panelName ) \
|
||||
{ return new className( parent, panelName ); }
|
||||
|
||||
#define GET_HINTITEMFACTORY_NAME( className ) Create_##className
|
||||
|
||||
#define DECLARE_HINTFACTORY( className ) \
|
||||
C_TFBaseHint *Create_##className##( int id, int entity ) \
|
||||
{ return new className( id, 0, entity, NULL ); }
|
||||
|
||||
#define GET_HINTFACTORY_NAME( className ) Create_##className
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: A hint that shows up as a single line o text
|
||||
//-----------------------------------------------------------------------------
|
||||
class CHintItemBase : public vgui::Panel, public ITFHintItem
|
||||
{
|
||||
DECLARE_CLASS_GAMEROOT( CHintItemBase, vgui::Panel );
|
||||
|
||||
public:
|
||||
CHintItemBase( vgui::Panel *parent, const char *panelName );
|
||||
|
||||
// Draw some extra stuff in the Bg
|
||||
virtual void PaintBackground();
|
||||
virtual void OnSizeChanged( int newWide, int newTall );
|
||||
virtual void SetText( const char *text );
|
||||
|
||||
virtual void SetFormatString( const char *fmt );
|
||||
virtual const char *GetFormatString( void );
|
||||
// If using format string
|
||||
virtual bool CheckKeyAndValue( const char *instring, int* keylength, const char **ppOutstring );
|
||||
virtual void ComputeTitle( void );
|
||||
|
||||
virtual void SetAutoComplete( float elapsed_time );
|
||||
|
||||
// Scheme settings
|
||||
virtual void ApplySchemeSettings(vgui::IScheme *pScheme);
|
||||
|
||||
// Helper
|
||||
virtual const char *GetKeyNameForBinding( const char *binding );
|
||||
|
||||
// Implement ITFHintItem
|
||||
virtual void ParseItem( KeyValues *pKeyValues );
|
||||
virtual bool GetCompleted( void );
|
||||
virtual void SetActive( bool active );
|
||||
virtual bool GetActive( void );
|
||||
virtual void Think( void );
|
||||
virtual int GetHeight( void );
|
||||
virtual void SetPosition( int x, int y );
|
||||
virtual void DeleteThis( void );
|
||||
virtual void SetItemNumber( int index );
|
||||
virtual void SetVisible( bool visible );
|
||||
virtual void SetHintTarget( vgui::Panel *panel );
|
||||
virtual bool ShouldRenderPanelEffects( void );
|
||||
virtual void SetKeyValue( const char *key, const char *value );
|
||||
protected:
|
||||
enum
|
||||
{
|
||||
MAX_TEXT_LENGTH = 256,
|
||||
};
|
||||
|
||||
// Has the hint item been completed
|
||||
bool m_bCompleted;
|
||||
// Is the hint item active
|
||||
bool m_bActive;
|
||||
// Text of hint
|
||||
vgui::Label *m_pLabel;
|
||||
// Depends on type of hint
|
||||
vgui::Panel *m_pObject;
|
||||
// Time the hint was activated
|
||||
float m_flActivateTime;
|
||||
|
||||
// vgui::Label *m_pIndex;
|
||||
// Index of hint
|
||||
//int m_nIndex;
|
||||
|
||||
bool m_bUseFormatString;
|
||||
char m_szFormatString[ MAX_TEXT_LENGTH ];
|
||||
|
||||
bool m_bAutoComplete;
|
||||
float m_flAutoCompleteTime;
|
||||
|
||||
vgui::HFont m_hSmallFont;
|
||||
vgui::HFont m_hMarlettFont;
|
||||
};
|
||||
|
||||
CHintItemBase *CreateHintItem( vgui::Panel *parent, const char *name );
|
||||
|
||||
#endif // HINTITEMBASE_H
|
||||
Reference in New Issue
Block a user