Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

89 lines
2.3 KiB

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