mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-07 17:29:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef ATTRIBUTETEXTENTRY_H
|
||||
#define ATTRIBUTETEXTENTRY_H
|
||||
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "vgui_controls/TextEntry.h"
|
||||
#include "tier1/utlvector.h"
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Forward declarations
|
||||
//-----------------------------------------------------------------------------
|
||||
class CDmElement;
|
||||
class CAttributeTextPanel;
|
||||
class KeyValues;
|
||||
|
||||
namespace vgui
|
||||
{
|
||||
class IScheme;
|
||||
class Label;
|
||||
class Menu;
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// CAttributeTextEntry
|
||||
//-----------------------------------------------------------------------------
|
||||
class CAttributeTextEntry : public vgui::TextEntry
|
||||
{
|
||||
DECLARE_CLASS_SIMPLE( CAttributeTextEntry, vgui::TextEntry );
|
||||
|
||||
public:
|
||||
CAttributeTextEntry( Panel *parent, const char *panelName );
|
||||
virtual bool GetSelectedRange(int& cx0,int& cx1)
|
||||
{
|
||||
return BaseClass::GetSelectedRange( cx0, cx1 );
|
||||
}
|
||||
|
||||
protected:
|
||||
CAttributeTextPanel *GetParentAttributePanel();
|
||||
virtual void OnMouseWheeled( int delta );
|
||||
|
||||
// We'll only create an "undo" record if the values differ upon focus change
|
||||
virtual void OnSetFocus();
|
||||
virtual void OnKillFocus();
|
||||
virtual void OnKeyCodeTyped( vgui::KeyCode code );
|
||||
|
||||
virtual void OnPanelDropped( CUtlVector< KeyValues * >& data );
|
||||
virtual bool GetDropContextMenu( vgui::Menu *menu, CUtlVector< KeyValues * >& msglist );
|
||||
virtual bool IsDroppable( CUtlVector< KeyValues * >& msglist );
|
||||
|
||||
virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
|
||||
|
||||
MESSAGE_FUNC_PARAMS( OnTextChanged, "TextChanged", data );
|
||||
|
||||
private:
|
||||
enum
|
||||
{
|
||||
MAX_TEXT_LENGTH = 1024
|
||||
};
|
||||
|
||||
template<class T> void ApplyMouseWheel( T newValue, T originalValue );
|
||||
void StoreInitialValue( bool bForce = false );
|
||||
void WriteValueToAttribute();
|
||||
void WriteInitialValueToAttribute();
|
||||
|
||||
bool m_bValueStored;
|
||||
char m_szOriginalText[ MAX_TEXT_LENGTH ];
|
||||
union
|
||||
{
|
||||
float m_flOriginalValue;
|
||||
int m_nOriginalValue;
|
||||
bool m_bOriginalValue;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
#endif // ATTRIBUTETEXTENTRY_H
|
||||
Reference in New Issue
Block a user